【问题标题】:flask preloader before render_template is invoked调用 render_template 之前的烧瓶预加载器
【发布时间】:2018-04-29 14:36:07
【问题描述】:

我有一个基于flask的python应用程序,现在在调用render_template之前,将数据值传递给html的函数需要很长时间才能执行。结果,当我单击http://127.0.0.1:5000/ 时,我看到一个白屏大约 30 秒。/在显示 html 之前 1 分钟。代码是这样的

@app.route('/')
<a long time taking function to pass values to the render function below
return render_template ('xxx.html',args.values...argsn.valuen) 
if __name__=="__main__":
    app.run()

如何在调用 render_template html 之前添加预加载器 gif?我已经看到了一些关于在单击按钮或类似内容时显示加载 gif 的答案,但我需要在第一次加载时显示加载 gif,并且当使用工具栏中的刷新图标刷新 http://127.0.0.1:5000/ 时。我尝试了一些 CSS/HTML 修补,但它们只有在调用 render_template html 之后才会出现。该程序在调用渲染函数之前花费了大部分时间。

【问题讨论】:

    标签: flask preloader


    【解决方案1】:

    你可以分成两页:第一页显示加载 GIF,然后重定向(通过 JavaScript?)到第二页,这需要很长时间才能呈现。

    【讨论】:

    • 有用的建议,对我来说第一部分已经完成。我使用了以下 app = Flask(name) @app.route('/') def about(): return render_template('base.html') @app.route ('/Home') ...所以 base,html 只不过是一个加载微调器,它会在耗时功能完成执行后重定向到主页...但是,一旦主页加载并单击,我的第二部分仍然存在浏览器工具栏中的刷新图标加载 gif 应该再次出现,但现在 127.0.0.1:5000/Home 正在刷新,它没有加载微调器 gif...
    • 我怀疑你可以通过在 JavaScript 中捕获 onbeforeunload 事件并显示加载图像来做到这一点(请参阅example),但它似乎不适用于所有浏览器(尤其是手机)。另一种选择是通过 Ajax 调用来完成此操作(即主页加载,然后在加载后通过 ajax 调用填充一个部分;主页显示加载 gif;加载 gif 可以在完成后由 Ajax 调用的 HTML 结果替换)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多