在浏览了许多有用且闪亮的 Python 框架之后,我发现它们都没有接近我的需要或提供的方式超过我的需要。我想自己组装一些东西;可以将其定义为框架,但不能定义为全栈。但是,我在网上找不到 Python 社区认为在应用程序中管理 WSGI 中间件的正确/标准方法。
我不是在寻找框架建议,除非它提供管理 WSGI 中间件的方法示例。我也不是在寻找有关如何让网络服务器与 python 对话的信息——我理解这一点。
相反,我正在寻找关于如何告诉 python 将哪些组件/中间件放入堆栈以及以何种顺序放入堆栈的建议。例如,如果我想使用:
Spawning-->memento-->AuthKit-->(?)-->MyApp
如何让这些组件按正确的顺序排列,以及如何在之前配置一个附加项目(比如 Routes)MyApp
?
所以; 您能否就管理 Python 应用程序的 WSGI 堆栈中包含的中间件的通用/正确/标准方法提供建议?
编辑
感谢 Michael Dillon 推荐A Do-It-Yourself Framework,这有助于突出我的问题。该文档的中间件部分指出,应该将中间件 A 包装在中间件 B 中,将 B 包装在 C 中,依此类推:
app = ObjectPublisher(Root())
wrapped_app = AuthMiddleware(app)
from paste.evalexception import EvalException
exc_wrapped_app = EvalException(wrapped_app)
这显示了如何以非常简单的方式做到这一点。我了解这是如何工作的,但是在使用许多中间件包时似乎太简单了。
有没有更好的方法来管理这些中间件组件如何添加到堆栈中?也许是从配置文件中读取的常见设计模式?