Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Flask在任务进行时返回多个模板?_Python_Python 3.x_Flask - Fatal编程技术网

Python 如何使用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

我有一个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', 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中实现,太大了,无法更改。