The Python WSGI Utility Library


Werkzeug is a WSGI utility library for Python. It's widely used and BSD licensed.

Werkzeug is Simple

from werkzeug.wrappers import Request, Response

def application(request):
    return Response('Hello World!')

if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 4000, application)

And Powerful

Werkzeug started as a simple collection of various utilities for WSGI applications and has become one of the most advanced WSGI utility modules. It includes a powerful debugger, fully featured request and response objects, HTTP utilities to handle entity tags, cache control headers, HTTP dates, cookie handling, file uploads, a powerful URL routing system and a bunch of community contributed addon modules.

It does Unicode and doesn't enforce a specific template engine, database adapter or anything else. It doesn't even enforce a specific way of handling requests and leaves all that up to the developer.

In the Box

A Strong Foundation

Werkzeug is the base of frameworks such as Flask and more, as well as in house frameworks developed for commercial products and websites.

What other people say

Have you looked at werkzeug.routing? It's hard to find anything that's simpler, more self-contained, or purer-WSGI than Werkzeug, in general — I'm quite a fan of it!  —  Alex Martelli


Found a bug? Have a good idea for improving Werkzeug? Head over to Werkzeug's new github page and create a new ticket or fork. If you just want to chat with fellow developers, visit the IRC channel or join the mailinglist.

Fork me on GitHub