如何在wsgi中间件之间传递数据?

时间:2018-02-17 18:49:53

标签: python middleware wsgi

我试图制作一系列中间件,我必须在它们之间传递数据。我想拥有在请求/响应生命周期中存在的变量。此时我使用environ参数并将数据添加到其中。但似乎这是一种错误的方式。 例如:

class A(object):
    """First class in a sequence"""
    def __call__(self, app):
        # logic here
        def some_func(environ, start_response):
            # logic here
            environ['my key'] = 'some data'
            def custom_headers(status, headers, exc_info=None):
                # change headers
                return start_response(status, headers, exc_info)
            return app(environ, custom_headers)
        return some_func

class B(object):
    """Second class in a sequence"""
    def __call__(self, app):
        # logic here
        def some_func(environ, start_response):
            data = environ.get('my key')
            # logic here

            def custom_headers(status, headers, exc_info=None):
                # change headers
                return start_response(status, headers, exc_info)
            return app(environ, custom_headers)
        return some_func

因此,您可以看到我想在一个类中生成数据,然后在第二个类中处理它(!数据应该是唯一的请求/响应他们之间没有分享。)

您能帮忙找到最佳方法吗?

0 个答案:

没有答案