是否可以克隆请求以供以后使用?

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()

本次调用返回的对象可以跨线程访问。