我希望能够清楚地了解什么是最pythonic和更清洁的实现方式:
我是否应该编写一个WSGI中间件来获取应用程序作为参数或纯金字塔Tween来满足我的一个或两个要求?
另外,哪个wsgi中间件或补间最符合apache + mod_wsgi?
由于
答案 0 :(得分:5)
我不同于Merickels的观点。对于案例2,你肯定想要使用补间,因为它谈到“集成”。 WSGI中间件被过度使用 - 我的观点是,如果您的应用程序需要中间件,那么它不应该再是中间件。例如,参见PEP 333的作者的优秀咆哮。
此外,即使是针对您自己的应用程序的日志记录,也应该在金字塔补间中完成,因为api更干净且开销更少。无论如何,将它作为您需要的WSGI中间件编写将是微不足道的。
答案 1 :(得分:2)
除非您需要特定于框架的详细信息,否则作为WSGI中间件的一切都会更好。特别是如果你很聪明并使用webob装饰器将复杂的WSGI协议转换为简单的请求/响应对象。例如,当与权限集成时,我甚至不确定补间是否有意义。在您的分组查找器中,您只需连接到您的权利系统即可。对于日志记录,有许多WSGI(paste的translogger)和tween(pyramid_exclog,pyramid_debugtoolbar)记录器的示例,您可以从中提取想法。