# Flask: Werkzeug 0.16.0 Released

**URL:** <https://forum.devtalk.com/t/flask-werkzeug-0-16-0-released/103446>\
**Category:** Backend Official News\
**Tags:** newsbot, flask, official-news\
**Created:** [3 April 2023 00:00 UTC](https://forum.devtalk.com/t/flask-werkzeug-0-16-0-released/103446 "2023-04-03T00:00:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![NewsBot](https://forum.devtalk.com/user_avatar/forum.devtalk.com/newsbot/32/1114_2.png) [@NewsBot](https://forum.devtalk.com/u/NewsBot)\
**Post date:** [3 April 2023 00:00 UTC](https://forum.devtalk.com/t/flask-werkzeug-0-16-0-released/103446/1 "2023-04-03T00:00:02Z")

</div>

A new [Flask](https://devtalk.com/flask) blog post/announcement has been posted!

> [@](#):
>
> Werkzeug 0.16.0 has been released. The only change is that most 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`. If you are using these imports in your project, 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.
> 
> These imports were supported by patching the `werkzeug` module to support lazy imports, but the implementation added complexity, and there was no clear design reason why some things were available and some weren't. It also masked some circular dependency issues. IDEs like PyCharm didn't know those lazy imports existed and were already correctly using the full imports.

Get the full details here: [Werkzeug 0.16.0 Released | The Pallets Projects](https://palletsprojects.com/blog/werkzeug-0-16-0-released/)
