是否有可能在以后克隆请求以使用它?

时间:2015-01-21 15:59:11

标签: python flask

是否可以克隆flask.request对象以便以后使用它?我想将克隆的请求发送到另一个线程以重复相同的工作。如何将克隆的对象放在请求堆栈的顶部?

2 个答案:

答案 0 :(得分:2)

就像复制environ对象一样简单。它有一个copy()方法,可以解决这个问题:

environ = flask.request.environ.copy()

现在您可以使用app.request_context将新的上下文(使用克隆的环境)推送到烧瓶上下文堆栈:

with app.request_context(environ):
    ...

答案 1 :(得分:0)

如果您想在处理请求时将对象传递给线程,我认为传递实际的请求对象可能比flask.request proxy object更为容易(也是更好的选择)。

request._get_current_object()

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