【发布时间】:2008-12-09 08:09:07
【问题描述】:
【问题讨论】:
标签: python django google-app-engine middleware django-middleware
【问题讨论】:
标签: python django google-app-engine middleware django-middleware
这很简单:您照常创建 WSGI 应用程序,然后在执行之前将该应用程序包装在您的 WSGI 中间件中。
请参阅来自博客的this code,了解如何将 firepython 添加为中间件。
【讨论】:
GAE webapp 框架不会一对一地映射到 Django 框架。如果不自己实现某种适配器,就很难做你想做的事,我不知道有任何第三方处理程序适配器可以做到这一点。
也就是说,我通常使用 app-engine-patch,因此我可以将最新的 1.0.2 Django 版本与 AppEngine 一起使用,然后您可以在 setup.py 文件中以正常方式包含 Django 中间件。如果需要,您可以查看 app-engine-patch 的适配器以了解它们是如何做到的,然后将其作为框架开始。
【讨论】:
Django 理解的“中间件”是一种请求/响应处理器,与 WSGI 所说的“中间件”完全不同。想一想:类 django 的中间件将根据 Beaker(WSGI 中间件)在 environ['beaker.session'] 中放入的内容添加 session 属性到请求对象。虽然将 WSGI 中间件添加到堆栈应该很简单(您已经在 main.py 中处理 WSGI 级别),添加请求/响应处理器取决于如何从 WSGI 抽象请求和响应。
在Werkzeug's wiki 及其contrib modules 之一中描述了如何使用Werkzeug(这是基本的WSGI 工具集)来完成。
【讨论】: