12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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/
- Installing
- ----------
- Install and update using `pip`_:
- .. code-block:: text
- pip install -U Werkzeug
- .. _pip: https://pip.pypa.io/en/stable/getting-started/
- A Simple Example
- ----------------
- .. code-block:: python
- from werkzeug.wrappers import Request, Response
- @Request.application
- def application(request):
- return Response('Hello, World!')
- if __name__ == '__main__':
- from werkzeug.serving import run_simple
- run_simple('localhost', 4000, application)
- 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
- Links
- -----
- - Documentation: https://werkzeug.palletsprojects.com/
- - Changes: https://werkzeug.palletsprojects.com/changes/
- - PyPI Releases: https://pypi.org/project/Werkzeug/
- - Source Code: https://github.com/pallets/werkzeug/
- - Issue Tracker: https://github.com/pallets/werkzeug/issues/
- - Website: https://palletsprojects.com/p/werkzeug/
- - Twitter: https://twitter.com/PalletsTeam
- - Chat: https://discord.gg/pallets
|