是否可以克隆请求以供以后使用?
Is it possible to clone a request to use it later?
是否可以克隆 flask.request
对象以供以后使用?我想将克隆的请求发送到另一个线程以重复相同的工作。如何将克隆的对象放在请求堆栈的顶部?
就像复制环境对象一样简单。它有一个 copy() 方法可以做到这一点:
environ = flask.request.environ.copy()
现在您可以使用 app.request_context 将新上下文(使用克隆的环境)推送到 flask 上下文堆栈:
with app.request_context(environ):
...
如果您想在处理请求时将对象传递给线程,我认为传递实际请求对象而不是 flask.request proxy object 可能更容易(并且更可取)。
request._get_current_object()
本次调用返回的对象可以跨线程访问。
是否可以克隆 flask.request
对象以供以后使用?我想将克隆的请求发送到另一个线程以重复相同的工作。如何将克隆的对象放在请求堆栈的顶部?
就像复制环境对象一样简单。它有一个 copy() 方法可以做到这一点:
environ = flask.request.environ.copy()
现在您可以使用 app.request_context 将新上下文(使用克隆的环境)推送到 flask 上下文堆栈:
with app.request_context(environ):
...
如果您想在处理请求时将对象传递给线程,我认为传递实际请求对象而不是 flask.request proxy object 可能更容易(并且更可取)。
request._get_current_object()
本次调用返回的对象可以跨线程访问。