[Django]-Middleware for both Django and Pylons

3👍

Pylons uses standard WSGI middleware. If you deploy Django via WSGI, you can also use WSGI middleware at that point. You can’t, however, currently use WSGI middleware via the standard Django MIDDLEWARE_CLASSES option in settings.py.

That said, there is currently a Google Summer of Code project to enable the use of WSGI middleware in Django itself. I haven’t been following the status of this project, but the code is available in the Http WSGI improvements branch.

0👍

For Pylons the term middleware means WSGI (PEP 333) middleware, whereas Django means its own internal mechanism for middleware.

However, if you run Django under apache+mod_wsgi (instead of e.g. mod_python or lighttpd+flup) you can also include WSGI middleware in Django. This isn’t typically done though because much of the functionality you’ll find in WSGI middleware is already built-in to Django proper or Django middleware.

The differences between WSGI and Django middleware are small enough that it should be easy enough to convert code between the two. The tougher problem is when they use external libraries like ORM’s.

The WSGI Wiki has a good list of WSGI middleware.

Leave a comment