4 Summary: The comprehensive WSGI web application library.
5 Maintainer-email: Pallets <contact@palletsprojects.com>
7 Description-Content-Type: text/x-rst
8 Classifier: Development Status :: 5 - Production/Stable
9 Classifier: Environment :: Web Environment
10 Classifier: Intended Audience :: Developers
11 Classifier: License :: OSI Approved :: BSD License
12 Classifier: Operating System :: OS Independent
13 Classifier: Programming Language :: Python
14 Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
15 Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
16 Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
17 Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware
18 Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
19 Requires-Dist: MarkupSafe>=2.1.1
20 Requires-Dist: watchdog>=2.3 ; extra == "watchdog"
21 Project-URL: Changes, https://werkzeug.palletsprojects.com/changes/
22 Project-URL: Chat, https://discord.gg/pallets
23 Project-URL: Documentation, https://werkzeug.palletsprojects.com/
24 Project-URL: Donate, https://palletsprojects.com/donate
25 Project-URL: Issue Tracker, https://github.com/pallets/werkzeug/issues/
26 Project-URL: Source Code, https://github.com/pallets/werkzeug/
27 Provides-Extra: watchdog
32 *werkzeug* German noun: "tool". Etymology: *werk* ("work"), *zeug* ("stuff")
34 Werkzeug is a comprehensive `WSGI`_ web application library. It began as
35 a simple collection of various utilities for WSGI applications and has
36 become one of the most advanced WSGI utility libraries.
40 - An interactive debugger that allows inspecting stack traces and
41 source code in the browser with an interactive interpreter for any
43 - A full-featured request object with objects to interact with
44 headers, query args, form data, files, and cookies.
45 - A response object that can wrap other WSGI applications and handle
47 - A routing system for matching URLs to endpoints and generating URLs
48 for endpoints, with an extensible system for capturing variables
50 - HTTP utilities to handle entity tags, cache control, dates, user
51 agents, cookies, files, and more.
52 - A threaded WSGI server for use while developing applications
54 - A test client for simulating HTTP requests during testing without
55 requiring running a server.
57 Werkzeug doesn't enforce any dependencies. It is up to the developer to
58 choose a template engine, database adapter, and even how to handle
59 requests. It can be used to build all sorts of end user applications
60 such as blogs, wikis, or bulletin boards.
62 `Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
63 providing more structure and patterns for defining powerful
66 .. _WSGI: https://wsgi.readthedocs.io/en/latest/
67 .. _Flask: https://www.palletsprojects.com/p/flask/
73 Install and update using `pip`_:
77 pip install -U Werkzeug
79 .. _pip: https://pip.pypa.io/en/stable/getting-started/
85 .. code-block:: python
87 from werkzeug.wrappers import Request, Response
90 def application(request):
91 return Response('Hello, World!')
93 if __name__ == '__main__':
94 from werkzeug.serving import run_simple
95 run_simple('localhost', 4000, application)
101 The Pallets organization develops and supports Werkzeug and other
102 popular packages. In order to grow the community of contributors and
103 users, and allow the maintainers to devote more time to the projects,
104 `please donate today`_.
106 .. _please donate today: https://palletsprojects.com/donate
112 - Documentation: https://werkzeug.palletsprojects.com/
113 - Changes: https://werkzeug.palletsprojects.com/changes/
114 - PyPI Releases: https://pypi.org/project/Werkzeug/
115 - Source Code: https://github.com/pallets/werkzeug/
116 - Issue Tracker: https://github.com/pallets/werkzeug/issues/
117 - Chat: https://discord.gg/pallets