首页 > 解决方案 > 使用 Python 和 uWSGI 在调用方法中触发中间件

问题描述

当我开发一个在 wsgi 上运行的应用程序时——更具体地说是在 uwsgi 上运行时,我一度感到困惑。

构建我的示例应用程序后:

class MyCustomApp():
    def __call__(self, environ, start_response):
        start_response('200 OK', [('Content-Type','application/json')])
        return "a".encode('utf-8')

application = MyCustomApp()

一切都按预期完美运行。 我使用类而不是方法,出于其他原因我需要使用它。

现在让我们来解决问题。我正在使用名为 beaker 的中间件,如果我将我的应用程序替换为:

application = SessionMiddleware(MyCustomApp(),options)

一切正常,但我不想修改我的 call,尽管为了学习和理解。

我想做以下事情:

class MyCustomApp():
    def __call__(self, environ, start_response):
        start_response('200 OK', [('Content-Type','application/json')])
        ...
        here i want to implement SessionMiddleware without modify
        application = MyCustomApp()
        ...
        return "a".encode('utf-8')

application = MyCustomApp()

但是我没有尝试,我的中间件用它的默认值替换了我的环境。我希望他们能指导我理解并尝试实现保持上述逻辑。

标签: python-3.xmod-wsgiuwsgiwsgi

解决方案


推荐阅读