基本上我想显示一个加载页面,同时进行一个耗时的过程,然后重定向到我复杂的其他页面。
答案 0 :(得分:0)
虽然不可能实现,但我建议使用javascript完成此任务。
这是一个小例子。首先让我们编写一个非常简单的烧瓶服务器,其中一个端点非常慢。
from flask import Flask, render_template, jsonify
app = Flask(__name__)
@app.route("/")
def hello():
return render_template('redirect.html')
@app.route("/done")
def done():
return "Done!"
@app.route("/slow")
def slow():
import time
time.sleep(5)
return jsonify("oh so slow")
if __name__ == "__main__":
app.run()
现在,我们可以通过从javascript调用端点来创建出色的用户体验。按照惯例将其保存为templates/redirect.html
。
<html>
<head>
<script>
function navigate() {
window.location.href = 'done'; // redirect when done!
}
fetch('slow').then(navigate); // load the slow url then navigate
</script>
</head>
<body>
Loading... <!-- Display a fancy loading screen -->
</body>
</html>