Python 如何使用Flask在任务进行时返回多个模板?
我有一个Flask服务器,以及类似的东西:Python 如何使用Flask在任务进行时返回多个模板?,python,python-3.x,flask,Python,Python 3.x,Flask,我有一个Flask服务器,以及类似的东西: @app.route("/page", methods=['GET', 'POST']) def page(): is_working = False if (request.method == 'POST'): is_working = True do_long_task() is_working = False return render_template('page.html
@app.route("/page", methods=['GET', 'POST'])
def page():
is_working = False
if (request.method == 'POST'):
is_working = True
do_long_task()
is_working = False
return render_template('page.html', is_working)
do_long_任务是一个可能需要一些时间的过程。我想修改模板,考虑流程是否正在运行。在上面的示例中,服务器只需等待do_long_task()完成即可呈现模板。理想情况下,我想要这样的东西:
@app.route("/page", methods=['GET', 'POST'])
def page():
is_working = False
if (request.method == 'POST'):
is_working = True
render_template('page.html', is_working)
do_long_task()
is_working = False
render_template('page.html', is_working)
但这不会起作用,因为一旦呈现模板,就必须返回(因此页面必须完成)以将其考虑在内
我该怎么做呢?最简单的方法是使用烧瓶。这提供了几个例子来说明如何做到这一点。请注意,它不是重新提交页面,而是发送需要在客户端插入的附加数据。@Sergey的回答似乎解决了您的问题,但我更愿意使用JavaScript异步获取数据。您如何做到这一点?你让Flask和Javascript通信吗?怎么用?如果您的意思是只使用Javascript,那么这是不可能的,因为do_long_任务已经在Python中实现,太大了,无法更改。