FLASK-当我的函数在后台运行时,如何显示加载屏幕,然后从我的函数返回html页面?

时间:2019-09-04 11:57:40

标签: python html flask

我的flask脚本中有一些功能,这需要花费很多时间才能执行。目前,我想在脚本运行时显示类似加载页面的内容。

我尝试了很多方式但没有成功

@app.route('/script')
def foo():
  global cookie
  if cookie == 1:
    try:
        path = "script.py"
        os.system(path) #while this run, I want to show the loading page, and then return the output*       
        return render_template('output.html') #output*
    except Exception:
        return  render_template('error.html')
return render_template('login_error.html')

1 个答案:

答案 0 :(得分:0)

正如Chris所说,您需要使用JavaScript来显示加载页面。

下面是一个简单的代码段,可以帮助您入门。

HTML :我们假设您有一个触发/ script调用的锚点。

<a id="scriptCall">Run a script</a>
<div id="loadingImage" style="display:none;">
 <!-- your image tag goes here -->
</div>

JS :包含对服务器的Ajax调用(命中/ script)。需要JQuery。

$("#scriptCall").click( function()
    {
        // when a button is clicked, you make an Ajax call.
        $('#loadingImage').show();
        $.ajax({
            type: "GET",
            url: '/script',
            success: function (resp) {
                $('#loadingImage').hide();
             }
        });
    });