Werkzeug ist das Schweizer Taschenmesser für Python Webentwickler Was es tut ist WSGI benutzerfreundlich machen. Hier ein kleiner Ausschnitt aus der Featureliste:
- Stellt Request/Response Objekte für WSGI zur Verfügung
- Geht mit Dateiuploads auf eine angenehme Art um. Das heißt es läd eingehende Daten nicht in den Arbeitsspeicher, sondern auf die Festplatte in eine temporäre Datei.
- Stellt einige Entwicklertools bereit wie eine Middleware für statische Dateien, einen Debugger, einen Autoreload Mechanismus und ein kleines Tool um Management Skripte zu schreiben (letztere ist aber leider noch undokumentiert)
- Unicode aware. Alle eingehenden Daten werden in unicode umgewandelt, alles ausgehende wird in das Zielencoding gepackt. Schnell und einfach
- Kleine Template Engine. Besser als string.Template aber um Welten schlechter als wirkliche Python Template Engines. Ist so etwa auf ERB/PHP Niveau.
- Kontext-lokale Variablen. Wenn man Request Objekte und Freunde nicht von Funktion zu Funktion weitergeben will kann man sie als Kontext-lokale globale Variablen ablegen. Werkzeug sorgt dann dafür, dass sie richtig weitergeleitet und aufgeräumt werden.
- Test Werkzeuge. Hilft beim Unittesten aber mehr noch beim manuellen Testen der Anwendung. Erstellt WSGI Environments schnell und einfach, auf Wunsch auch gleich ganze Request Objekte
Beispielanwendungen und Snippets gibts im Trac.