freshcrate
Home > Frameworks > werkzeug

werkzeug

The comprehensive WSGI web application library.

Description

<div align="center"><img src="https://raw.githubusercontent.com/pallets/werkzeug/refs/heads/stable/docs/_static/werkzeug-name.svg" alt="" height="150"></div> # Werkzeug *werkzeug* German noun: "tool". Etymology: *werk* ("work"), *zeug* ("stuff") Werkzeug is a comprehensive [WSGI][] web application library. It began as a simple collection of various utilities for WSGI applications and has become one of the most advanced WSGI utility libraries. It includes: - An interactive debugger that allows inspecting stack traces and source code in the browser with an interactive interpreter for any frame in the stack. - A full-featured request object with objects to interact with headers, query args, form data, files, and cookies. - A response object that can wrap other WSGI applications and handle streaming data. - A routing system for matching URLs to endpoints and generating URLs for endpoints, with an extensible system for capturing variables from URLs. - HTTP utilities to handle entity tags, cache control, dates, user agents, cookies, files, and more. - A threaded WSGI server for use while developing applications locally. - A test client for simulating HTTP requests during testing without requiring running a server. Werkzeug doesn't enforce any dependencies. It is up to the developer to choose a template engine, database adapter, and even how to handle requests. It can be used to build all sorts of end user applications such as blogs, wikis, or bulletin boards. [Flask][] wraps Werkzeug, using it to handle the details of WSGI while providing more structure and patterns for defining powerful applications. [WSGI]: https://wsgi.readthedocs.io/en/latest/ [Flask]: https://www.palletsprojects.com/p/flask/ ## A Simple Example ```python # save this as app.py from werkzeug.wrappers import Request, Response @Request.application def application(request: Request) -> Response: return Response("Hello, World!") if __name__ == "__main__": from werkzeug.serving import run_simple run_simple("127.0.0.1", 5000, application) ``` ``` $ python -m app * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) ``` ## Donate The Pallets organization develops and supports Werkzeug and other popular packages. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, [please donate today][]. [please donate today]: https://palletsprojects.com/donate ## Contributing See our [detailed contributing documentation][contrib] for many ways to contribute, including reporting issues, requesting features, asking or answering questions, and making PRs. [contrib]: https://palletsprojects.com/contributing/

Release History

VersionChangesUrgencyDate
3.1.8Imported from PyPI (3.1.8)Low4/21/2026
3.1.7This is the Werkzeug 3.1.7 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release. PyPI: https://pypi.org/project/Werkzeug/3.1.7/ Changes: https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7 Milestone: https://github.com/pallets/werkzeug/milestone/44?closed=1 - `parse_list_header` preserves partially quoted items, discards empty items, and returns empty for unclosed quoted valuesMedium3/24/2026
3.1.6This is the Werkzeug 3.1.6 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release. PyPI: https://pypi.org/project/Werkzeug/3.1.6/ Changes: https://werkzeug.palletsprojects.com/page/changes/#version-3-1-6 - `safe_join` on Windows does not allow special devices names in multi-segment paths. [GHSA-29vq-49wr-vm6x](https://github.com/pallets/werkzeug/security/advisories/GHSA-29vqLow2/19/2026
3.1.5This is the Werkzeug 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release. PyPI: https://pypi.org/project/Werkzeug/3.1.5/ Changes: https://werkzeug.palletsprojects.com/page/changes/#version-3-1-5 Milestone: https://github.com/pallets/werkzeug/milestone/43?closed=1 - `safe_join` on Windows does not allow more special device names, regardless of extension or sLow1/8/2026
3.1.4This is the Werkzeug 3.1.4 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release. PyPI: https://pypi.org/project/Werkzeug/3.1.4/ Changes: https://werkzeug.palletsprojects.com/page/changes/#version-3-1-4 Milestone: https://github.com/pallets/werkzeug/milestone/42?closed=1 - `safe_join` on Windows does not allow special device names. This prevents reading from these when using `send_from_directoLow11/29/2025
3.1.3This is the Werkzeug 3.1.3 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes vs 3.1.0. PyPI: https://pypi.org/project/Werkzeug/3.1.3/ Changes: https://werkzeug.palletsprojects.com/en/stable/changes/#version-3-1-3 Milestone: https://github.com/pallets/werkzeug/milestone/41?closed=1 - Initial data passed to `MultiDict` and similar interfaces only accepts `list`, `tuple`, or `set` when passing multiple values. It had been changed Low11/8/2024
3.1.2This is the Werkzeug 3.1.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes vs 3.1.0. PyPI: https://pypi.org/project/Werkzeug/3.1.2/ Changes: https://werkzeug.palletsprojects.com/en/stable/changes/#version-3-1-2 Milestone: https://github.com/pallets/werkzeug/milestone/40?closed=1 - Improve type annotation for `TypeConversionDict.get` to allow the `type` parameter to be a callable. #2988 - `Headers` does not inherit from `MutaLow11/4/2024
3.1.1This is the Werkzeug 3.1.1 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes vs 3.1.0. PyPI: https://pypi.org/project/Werkzeug/3.1.1/ Changes: https://werkzeug.palletsprojects.com/en/stable/changes/#version-3-1-1 Milestone: https://github.com/pallets/werkzeug/milestone/38?closed=1 - Fix an issue that caused `str(Request.headers)` to always appear empty. #2985Low11/1/2024
3.1.0This is the Werkzeug 3.1.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecations, or introduce potentially breaking changes. We encourage everyone to upgrade, and to use a tool such as [pip-tools](https://pypi.org/project/pip-tools/) to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early. PyPI: https://pypi.org/project/Werkzeug/3.1.0/ Changes: https://wLow10/31/2024
3.0.6This is the Werkzeug 3.0.6 security fix release, which fixes security issues but does not otherwise change behavior and should not result in breaking changes. PyPI: https://pypi.org/project/Werkzeug/3.0.6/ Changes: https://werkzeug.palletsprojects.com/en/stable/changes/#version-3-0-6 - Fix how `max_form_memory_size` is applied when parsing large non-file fields. [GHSA-q34m-jh98-gwm2](https://github.com/advisories/GHSA-q34m-jh98-gwm2) - `safe_join` catches certain paths on Windows that weLow10/25/2024
3.0.5This is the Werkzeug 3.0.5 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes. PyPI: https://pypi.org/project/Werkzeug/3.0.5/ Changes: https://werkzeug.palletsprojects.com/en/stable/changes/#version-3-0-5 Milestone: https://github.com/pallets/werkzeug/milestone/37?closed=1 - The Watchdog reloader ignores file closed no write events. #2945 - Logging works with client addresses containing an IPv6 scope. #2952 - Ignore invalid auLow10/25/2024
3.0.4This is the Werkzeug 3.0.4 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes. PyPI: https://pypi.org/project/Werkzeug/3.0.4/ Changes: https://werkzeug.palletsprojects.com/en/3.0.x/changes/#version-3-0-4 Milestone: https://github.com/pallets/werkzeug/milestone/36?closed=1 - Restore behavior where parsing `multipart/x-www-form-urlencoded` data with invalid UTF-8 bytes in the body results in no form data parsed rather than Low8/21/2024
3.0.3This is the Werkzeug 3.0.3 security release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes. PyPI: https://pypi.org/project/Werkzeug/3.0.3/ Changes: https://werkzeug.palletsprojects.com/en/3.0.x/changes/#version-3-0-3 Milestone: https://github.com/pallets/werkzeug/milestone/35?closed=1 - Only allow `localhost`, `.localhost`, `127.0.0.1`, or the specified hostname when running the dev server, to make debugger requestLow5/5/2024
3.0.2This is a fix release for the 3.0.x feature branch. * Changes: https://werkzeug.palletsprojects.com/en/3.0.x/changes/#version-3-0-2Low4/6/2024
2.3.8This is a security release for the 2.3.x feature branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-8 Low11/8/2023
3.0.1This is a security release for the 3.0.x feature branch. * Changes: https://werkzeug.palletsprojects.com/en/3.0.x/changes/#version-3-0-1 Low10/24/2023
3.0.0This is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 3.0.x branch is now the supported fix branch, the 2.3.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as [pip-tools](https://pypi.org/project/pip-tools/) to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early. * ChanLow9/30/2023
2.3.7This is a fix release for the 2.3.x feature branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-7 * Milestone: https://github.com/pallets/werkzeug/milestone/33?closed=1Low8/14/2023
2.3.6This is a fix release for the 2.3.x feature branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-6 * Milestone: https://github.com/pallets/werkzeug/milestone/32?closed=1Low6/8/2023
2.3.5This is a fix release for the 2.3.x feature branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-5 * Milestone: https://github.com/pallets/werkzeug/milestone/31?closed=1Low6/7/2023
2.3.4This is a fix release for the 2.3.x release branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-4 * Milestone: https://github.com/pallets/werkzeug/milestone/30?closed=1Low5/8/2023
2.3.3This is a fix release for the 2.3.x release branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-3 * Milestone: https://github.com/pallets/werkzeug/milestone/29?closed=1Low5/1/2023
2.3.2This is a fix release for the 2.3.x release branch. - Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-2 - Milestone: https://github.com/pallets/werkzeug/milestone/28?closed=1 Low4/28/2023
2.3.1This is a fix release for the 2.3.x release branch. * Changes: https://werkzeug.palletsprojects.com/en/2.3.x/changes/#version-2-3-1 * Milestone: https://github.com/pallets/werkzeug/milestone/27?closed=1Low4/27/2023
2.3.0This is a feature release, which includes new features, removes previously deprecated code, and adds new deprecations. The 2.3.x branch is now the supported fix branch, the 2.2.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as [pip-tools](https://pypi.org/project/pip-tools/) to pin all dependencies and control upgrades. Test with warnings treated as errors to be able to adapt to deprecation warnings early. * ChanLow4/25/2023
2.2.3This is a fix release for the 2.2.x release branch. * Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-3 * Milestone: https://github.com/pallets/werkzeug/milestone/26?closed=1 This release contains security fixes for: * https://github.com/pallets/werkzeug/security/advisories/GHSA-xg9f-g7g7-2323 * https://github.com/pallets/werkzeug/security/advisories/GHSA-px8h-6qxv-m22qLow2/14/2023
2.2.2This is a fix release for the [2.2.0](https://github.com/pallets/werkzeug/releases/tag/2.2.0) feature release. * Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-2 * Milestone: https://github.com/pallets/werkzeug/milestone/25?closed=1Low8/8/2022
2.2.1This is a fix release for the [2.2.0](https://github.com/pallets/werkzeug/releases/tag/2.2.0) feature release. * Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-1 * Milestone: https://github.com/pallets/werkzeug/milestone/24?closed=1Low7/27/2022
2.2.0This is a feature release, which includes new features and removes previously deprecated features. The 2.2.x branch is now the supported bugfix branch, the 2.1.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as [pip-tools](https://pypi.org/project/pip-tools/) to pin all dependencies and control upgrades. * Changes: https://werkzeug.palletsprojects.com/en/2.2.x/changes/#version-2-2-0 * Milestone: https://github.coLow7/23/2022
2.1.2This is a fix release for the [2.1.0](https://github.com/pallets/werkzeug/releases/tag/2.1.0) feature release. * Changes: https://werkzeug.palletsprojects.com/en/2.1.x/changes/#version-2-1-2 * Milestone: https://github.com/pallets/werkzeug/milestone/22?closed=1Low4/28/2022
2.1.1This is a fix release for the [2.1.0](https://github.com/pallets/werkzeug/releases/tag/2.1.0) feature release. * Changes: https://werkzeug.palletsprojects.com/en/2.1.x/changes/#version-2-1-1 * Milestone: https://github.com/pallets/werkzeug/milestone/19?closed=1Low4/1/2022
2.1.0This is a feature release, which includes new features and removes previously deprecated features. The 2.1.x branch is now the supported bugfix branch, the 2.0.x branch will become a tag marking the end of support for that branch. We encourage everyone to upgrade, and to use a tool such as [pip-tools](https://pypi.org/project/pip-tools/) to pin all dependencies and control upgrades. * Changes: https://werkzeug.palletsprojects.com/en/2.1.x/changes/#version-2-1-0 * Milestone: https://github.coLow3/28/2022
2.0.3* Changes: https://werkzeug.palletsprojects.com/en/2.0.x/changes/#version-2-0-3 * Milestone: https://github.com/pallets/werkzeug/milestone/18?closed=1Low2/7/2022
2.0.2* Changes: https://werkzeug.palletsprojects.com/en/2.0.x/changes/#version-2-0-2Low10/6/2021
2.0.1* Changes: https://werkzeug.palletsprojects.com/en/2.0.x/changes/#version-2-0-1Low5/17/2021
2.0.0New major versions of all the core Pallets libraries, including Werkzeug 2.0, have been released! :tada: * Read the announcement on our blog: https://palletsprojects.com/blog/flask-2-0-released/ * Read the full list of changes: https://werkzeug.palletsprojects.com/changes/#version-2-0-0 * Retweet the announcement on Twitter: https://twitter.com/PalletsTeam/status/1392266507296514048 * Follow our blog, Twitter, or GitHub to see future announcements. This represents a significant amount Low5/12/2021
2.0.0rc5* Changes: https://werkzeug.palletsprojects.com/en/master/changes#version-2-0-0Low5/3/2021
2.0.0rc4* Changes: https://werkzeug.palletsprojects.com/en/master/changes/#version-2-0-0Low4/16/2021
2.0.0rc3* Changes: https://werkzeug.palletsprojects.com/en/master/changes/#version-2-0-0 Use the `--pre` flag to install this pre-release: ``` pip install --pre Werkzeug==2.0.0rc3 ```Low3/17/2021
2.0.0rc2* Changes: https://werkzeug.palletsprojects.com/en/master/changes/#version-2-0-0 Use the `--pre` flag to install this pre-release: ``` pip install --pre Werkzeug==2.0.0rc2 ```Low3/3/2021
2.0.0rc1* Changes: https://werkzeug.palletsprojects.com/en/master/changes/#version-2-0-0 Use the `--pre` flag to install this pre-release: ``` pip install --pre Werkzeug==2.0.0rc1 ```Low2/9/2021
1.0.1* Changelog: https://werkzeug.palletsprojects.com/en/1.0.x/changes/#version-1-0-1Low3/31/2020
1.0.0After 13 years of development, we're finally 1.0! Note that previously deprecated code has been removed in this release. Use 0.16.1 as an intermediate step to see deprecation warnings and upgrade. * Blog: https://palletsprojects.com/blog/werkzeug-1-0-0-released * Changelog: https://werkzeug.palletsprojects.com/en/1.0.x/changes/#version-1-0-0 * Twitter: https://twitter.com/PalletsTeam/status/1225561504004689920Low3/31/2020
1.0.0rc1* Changes: https://werkzeug.palletsprojects.com/en/master/changes/#version-1-0-0 Use the `--pre` flag to install this pre-release: ``` pip install --pre Werkzeug==1.0.0rc1 ```Low1/31/2020
0.16.1* Changelog: https://werkzeug.palletsprojects.com/en/0.16.x/changes/#version-0-16-1Low1/27/2020
0.16.0Most of the top-level attributes in the `werkzeug` module are now deprecated, and will be removed in 1.0.0. For example, instead of `import werkzeug; werkzeug.url_quote`, do `from werkzeug.urls import url_quote`. A deprecation warning will show the correct import to use. `werkzeug.exceptions` and `werkzeug.routing` should also be imported instead of accessed, but for technical reasons can’t show a warning. * Blog: https://palletsprojects.com/blog/werkzeug-0-16-0-released * Changelog: httpLow9/19/2019
0.15.6The issue causing the reloader to fail when running from a setuptools entry point (like `flask run`) on Windows has been fixed. * Changelog: http://werkzeug.palletsprojects.com/en/0.15.x/changes/#version-0-15-6Low9/4/2019
0.15.5* Changelog: http://werkzeug.palletsprojects.com/en/0.15.x/changes/#version-0-15-5Low7/17/2019
0.15.4* Blog: https://palletsprojects.com/blog/werkzeug-0-15-3-released/ * Changes: https://werkzeug.palletsprojects.com/en/0.15.x/changes/#version-0-15-4Low5/15/2019
0.15.3* Blog: https://palletsprojects.com/blog/werkzeug-0-15-3-released/ * Changes: https://werkzeug.palletsprojects.com/en/0.15.x/changes/#version-0-15-3 Low5/15/2019

Dependencies & License Audit

Loading dependencies...

Similar Packages

pre-commitA framework for managing and maintaining multi-language pre-commit hooks.v4.6.0
azure-core-tracing-opentelemetryMicrosoft Azure Azure Core OpenTelemetry plugin Library for Pythonazure-template_0.1.0b6187637
spdx-toolsSPDX parser and tools.0.8.5
lacesDjango components that know how to render themselves.0.1.2
django-tasksA backport of Django's built in Tasks framework0.12.0