Frameworks that run on WSGI¶
This is an alphabetic list of frameworks known to support WSGI. The level and nature of their support sometimes varies, as do the APIs they provide. The descriptions here focus on that, and not the flavor of the frameworks themselves. If you want to know more, follow the links!
Some frameworks really only support using pluggable WSGI servers, which means you get a number of options from HTTP, FastCGI, SCGI, threaded, forking, etc. However, not all such frameworks live well alongside other frameworks in the same process, or may require extra configuration. This is what is meant by noting when a framework supports WSGI servers, vs. a framework that supports a greater number of WSGI compositions, especially the kind of things noted in Middleware and libraries for WSGI Please feel free to expand on the list, the descriptions, or to make corrections.
Appier is an object-oriented Python web framework built for super fast app development. It’s as lightweight as possible, but not too lightweight. It gives you the power of bigger frameworks, without their complexity.
Bobo is a light-weight framework. Its goal is to be easy to use and remember.
Bottle is a fast and simple micro-framework for small web-applications. It offers request dispatching (Routes) with url parameter support, Templates, key/value Databases, a build-in HTTP Server and adapters for many third party WSGI/HTTP-server and template engines. All in a single file and with no dependencies other than the Python Standard Library.
CherryPy is a pythonic, object-oriented web development framework. Includes support for WSGI servers. CherryPy 3 includes better support for living alongside other WSGI frameworks, applications, and middleware.
Includes support for WSGI servers
The Django-hotsauce programming toolkit is a high-performance and scalable Python web framework derived from Django project. Previously known as notmm toolkit.
Falcon is a high-performance Python framework for building cloud APIs. It encourages the REST architectural style, and tries to do as little as possible while remaining highly effective.
Flask is a microframework for Python based on Werkzeug, Jinja 2 and good intentions.
It inherits its high WSGI usage and compliance from Werkzeug.
Poor WSGI for Python is light WGI connector with uri routing between WSGI server and your application. It have mod_python compatible request object, which is post to all uri or http state handler.
Pycnic is a mimimalist JSON API oriented framework for Python 2.7 and 3.x. It provides routing, cookies, and JSON error handling, while maintaining a small codebase.
Merger of the Pylons and repoze.bfg projects, Pyramid is a minimalist web framework aiming at composability and making developers paying only for what they use.
Database-driven app in minutes; inherits its WSGI support from CherryPy.
Makes web apps. A small RESTful library.
A full stack framework includes its own Database Abstraction Layer (with support for SQLite, MySQL, PostgreSQL, MSSQL, DB2, Informix, Oracle, FireBase, Ingres and Google App Engine), its own template language, and a web based IDE. web2py itself is a WSGI app. Not related to web.py.
A nanoframework (only a few hundred lines of code) offering an entry_points-based dependency graphing extension system, MVC separation, reusable namespaces, and universal URL dispatch protocol with tight WebOb integration and natural Python semantics.
The Zope web application server has been using WSGI as the default publishing method starting with version 4.
These systems still exist but got replaced by others or are unmaintained.
- Clever Harold
Clever Harold is an ambitious web framework. It has many features for rapid, reusable, and reliable web application construction. Clever Harold is a complete WSGI framework. To build an application, you pick and choose the servers and components that fit your needs.
Colubrid is a WSGI publisher which simplifies python web development. Colubrid is not a framework :-) Although some people like the idea of having found a framework in colubrid. All colubrid does for you is parsing form data / url parameters / cookies and providing a url dispatcher. Colubrid was replaced by Werkzeug.
Nettri is a newcomer of Python World. It is under heavy development. Features includes CMS, Own template Engine, modules and more coming.
- Paste WebKit
An implementation of the Webware servlet API using Paste infrastructure and WSGI.
Pythonic web development framework based on XML pipelines and WSGI
Full-stack Python web development framework combining the very best from the worlds of Ruby, Python and Perl.
Pylons has been superseded by pyramid .
Another WSGI framework (not sure what the distinguishing features are)
A Python WSGI-compliant web framework inspired by Zope, Pylons, and Django with built-in security and templating.
repoze.bfg was renamed pyramid and moved under the Pylons project.
A module that implements an analogue of the Zope 2 ZPublisher, with some major simplifications and cleanups. Its core mission is to allow publishing existing Zope2 applications in a WSGI environment that externalizes some of the features of “classic” Zope2 into middleware.
Obsoleted by Zope 2.13.
A pure-WSGI dispatcher and simple framework, inspired by CherryPy.
A simple Python WSGI-compliant web framework inspired by Django, TurboGears, and web.py.
A totally WSGI-ified version of SkunkWeb.
weblayer is a lightweight, componentised package for writing WSGI applications.
A rethinking of the Webware/WebKit servlet model, in a pure-WSGI framework. Not used widely.
WebStack is a package which provides a simple, common API for Python Web applications, allowing such applications to run within many different environments with virtually no changes to application code.
- Zope 3
The venerable Python web framework, recreated anew in Zope 3, and now a WSGI application. It seems to have some WSGI bits deep inside the publisher, but they aren’t really documented at this time. It is no longer developed as standalone application server, but many of its libraries continue life inside Zope.