我试图制作一系列中间件,我必须在它们之间传递数据。我想拥有在请求/响应生命周期中存在的变量。此时我使用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
因此,您可以看到我想在一个类中生成数据,然后在第二个类中处理它(!数据应该是唯一的每请求/响应他们之间没有分享。)
您能帮忙找到最佳方法吗?