Django和Pylons的中间件

时间:2009-07-22 20:06:26

标签: python django pylons middleware

在我看来,Django和Pylons对中间件应如何工作有不同的看法。我喜欢Pylons遵循标准PEP 333,但Django似乎有更广泛的采用。是否可以编写要在两者中使用的中间件?

涉及所述中间件的项目是将一个名为ESAPI的安全工具包从Java移植到Python。因为Java是如此面向标准,所以很容易与框架无关。在Python中,不同的框架对HttpRequest对象和中间件等基本事物的工作方式有不同的看法,所以这看起来更难。

显然,新用户不能发布多个超链接。请参阅下面的Django和Pylons中间件信息链接。

2 个答案:

答案 0 :(得分:3)

Pylons使用标准的WSGI中间件。如果您通过WSGI部署Django,那么您也可以使用WSGI中间件。但是,您目前无法通过settings.py中的标准Django MIDDLEWARE_CLASSES选项使用WSGI中间件。

也就是说,目前有一个Google Summer of Code项目可以在Django中使用WSGI中间件。我没有关注此项目的状态,但代码可以在Http WSGI improvements branch

中找到

答案 1 :(得分:0)

对于Pylons,术语中间件意味着WSGI(PEP 333)中间件,而Django意味着它自己的中间件内部机制。

但是,如果你在apache + mod_wsgi(而不是例如mod_python或lighttpd + flup)下运行Django,你还可以在Django中包含WSGI中间件。这通常不会完成,因为您在WSGI中间件中找到的大部分功能已经内置到Django或Django中间件中。

WSGI和Django中间件之间的差异很小,应该很容易在两者之间转换代码。更棘手的问题是他们使用像ORM这样的外部库。

WSGI Wiki有一个很好的WSGI middleware列表。