金字塔:用于自定义记录器和外部授权系统的Tween或WSGI中间件?

时间:2013-07-27 20:38:43

标签: python pyramid middleware tween

我希望能够清楚地了解什么是最pythonic和更清洁的实现方式:

  1. 自定义记录器。
  2. 一段代码,通过REST连接到第三方权利系统,与内部Pyramid ACL和权限系统相结合。
  3. 我是否应该编写一个WSGI中间件来获取应用程序作为参数或纯金字塔Tween来满足我的一个或两个要求?

    另外,哪个wsgi中间件或补间最符合apache + mod_wsgi?

    由于

2 个答案:

答案 0 :(得分:5)

我不同于Merickels的观点。对于案例2,你肯定想要使用补间,因为它谈到“集成”。 WSGI中间件被过度使用 - 我的观点是,如果您的应用程序需要中间件,那么它不应该再是中间件。例如,参见PEP 333的作者的优秀咆哮。

此外,即使是针对您自己的应用程序的日志记录,也应该在金字塔补间中完成,因为api更干净且开销更少。无论如何,将它作为您需要的WSGI中间件编写将是微不足道的。

答案 1 :(得分:2)

除非您需要特定于框架的详细信息,否则作为WSGI中间件的一切都会更好。特别是如果你很聪明并使用webob装饰器将复杂的WSGI协议转换为简单的请求/响应对象。例如,当与权限集成时,我甚至不确定补间是否有意义。在您的分组查找器中,您只需连接到您的权利系统即可。对于日志记录,有许多WSGI(paste的translogger)和tween(pyramid_exclog,pyramid_debugtoolbar)记录器的示例,您可以从中提取想法。