Могу ли я показывать один шаблон во Flask во время работы функции и перенаправлять на другой после завершения функции? - PullRequest
0 голосов
/ 18 мая 2018

По сути, я хочу показать страницу загрузки, пока идет трудоемкий процесс, а затем перенаправить на другую сложную страницу.

1 Ответ

0 голосов
/ 18 мая 2018

Хотя достичь этого не невозможно, я рекомендую использовать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...