Я совершенно новичок в Flask и веб-разработке, поэтому, пожалуйста, не обращайте внимания на отсутствие надлежащей терминологии, которую я, вероятно, использую.
Я пытаюсь отобразить страницу, которая сообщает пользователю, что его файлыв упаковке. Как только упаковка на внутреннем сервере закончена, я бы хотел перенаправить их обратно на страницу, с которой они пришли, а также отправить файл для загрузки.
Я ограничен использованием Flask и Python 2.7 дляэта задача.
Я пытался вернуть html и функцию send_file(path_to_file)
в виде кортежа, а также пытался создать новый поток для функции send_file()
, но ни одна из них не сработала.
Я не знаю, что делать дальше.
Вот код, показывающий, где я сейчас нахожусь:
import backend
import threading
from flask import request, send_file
def get_package(post_data):
file_path = backend.get_package(post_data)
return send_file(file_path)
@app.route("/pkg_download", method=['POST'])
def pkg_download():
post_data = dict(request.form.iterlists())
result = threading.Thread(None, target=get_package, args=[post_data])
result.start()
html_dialog = "<p>Packaging Images</p>"
return html_dialog
Когда язапустить выше, я получаю эту ошибку:
RuntimeError: Working outside of application context.
вместо отображения html, а затем загрузка файла после того, как пакет будет выполнен zip.
Но опять же,Я действительно не знаю, что я делаю, и это, вероятно, совершенно неверный подход к этому. Любая помощь будет принята с благодарностью.