Werkzeug

The Swiss Army Knife For Python Web Developers

Motivation

The main motivation behind Werkzeug is that it can be used as a flexible base for any WSGI application. It was developed out of the wish to have a library that combines often used WSGI utilities and other web development specific helpers without creating a full featured framework that includes a template engine or something like that.

In the past many Python web applications recreated the interface to the web server. Popular examples are the MoinMoin wiki engine and the trac SCM. Later on, WSGI was developed which standardized the interface to the web server so that it was possible to reuse components in various web applications. However, WSGI is very low level and so quickly frameworks appeared to give it a nice interface.

Our experience is that frameworks often try to target too many things and the bigger the application becomes the more you start to reimplement what the framework already provides, leaving only the interface to WSGI untouched. Werkzeug tries to do exactly that, implement the very basic stuff and leave everything else to the developer.

Together with the countless libraries that exist for Python you can combine all those to your very personal framework that works exactly like you want it to work.