在我看来,Django和Pylons对中间件应该如何工作有不同的想法。我喜欢Pylons遵循标准化的PEP 333,但Django似乎有更广泛的采用。是否有可能编写在两者中都使用的中间件?
涉及上述中间件的项目正在将一个名为ESAPI的安全工具包从Java移植到Python。因为Java是面向标准的,所以很容易成为框架不可知论。在Python语言中,不同的框架对HttpRequest对象和中间件等基本内容的工作方式有不同的想法,因此这似乎更难。
显然,新用户不能发布多个超链接。请看下面的Django和Pylons中间件信息的链接。
发布于 2009-07-22 20:45:09
Pylons使用标准的WSGI中间件。如果您通过WSGI部署Django,那么您也可以使用WSGI中间件。但是,目前还不能通过settings.py中的标准Django MIDDLEWARE_CLASSES选项使用WSGI中间件。
也就是说,目前有一个Google Summer of Code项目可以在Django中使用WSGI中间件。我一直没有关注这个项目的状态,但代码可以在Http WSGI improvements branch中找到。
发布于 2009-07-22 20:45:30
对于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列表。
https://stackoverflow.com/questions/1167903
复制相似问题