The Pallets team is pleased to release Werkzeug 0.15.0. This represents over a year of work from the community and maintainers, and as such there is an unusually long list of changes. Some of the notable ones are listed below, but there are many more throughout the framework. Read the full changelog to understand what changes may affect your code when upgrading.
int
and float
URL converters can handle negative numbers.python -m
as well as non-Python executable scripts.json
parameter, and the response class has
a get_json
method. This makes testing JSON APIs much more
straightforward.src
directory layout.werkzeug.contrib
has been deprecatedThe code under the werkzeug.contrib
package has been deprecated. In
version 1.0, code will either be moved into werkzeug
core, or will be
removed completely. Contrib started as a place to put code that wasn't
clear where it belonged. In the 12 years since Werkzeug started, the
packaging ecosystem and Werkzeug's codebase have evolved. The contrib
code has not been widely maintained, often having better implementations
elsewhere or no longer being required.
ProxyFix
, LintMiddleware
, and ProfilerMiddleware
have moved into
werkzeug.middleware
.securecookie
and sessions
have been extracted to the
pallets/secure-cookie
repository.cache
has been extracted to the
pallets/cachelib repository.Besides contrib, many other parts of Werkzeug have been marked, either explicitly or implicitly, as deprecated, for many years. This release ensures that every occurrence issues a clear deprecation warning that mentions when the code will be removed. Currently, everything marked deprecated is slated to be removed in version 1.0.
werkzeug.wsgi
has moved to werkzeug.middleware
.werkzeug.wrappers
module was converted to a package of more
specific modules. Imports for classes that were publicly documented in
the previous version will work without change.Install from PyPI with pip:
pip install -U Werkzeug
The Pallets organization has joined the Python Software Foundation. We now accept donations through the PSF in order to support our efforts to maintain the projects and grow the community. Click here to donate.