Python 渲染模板后的烧瓶背景处理
我正在尝试提交一个表单,用户可以在其中潜在地上传几个文件,从中触发一个后台进程,这将需要几分钟才能完成。我目前遇到的问题是,当用户单击Submit按钮时,在文件上载过程中,用户在几秒钟内似乎没有发生任何事情。是否有一种方法可以在文件上传和处理过程中重定向到(静态*)保留页,然后在后台处理完成后,呈现一个新模板 使用Python 3.6.1和Flask 0.12.2 *我现在说的是静态的,但在将来的某个时候,我希望使用AJAX来更新此页面,以便向用户提供更多信息 注意,我已经看到了几个类似的问题,一般的答案是使用像芹菜这样的模块来执行异步操作。不幸的是,由于公司政策,我无法下载新的软件包,因此我无法访问芹菜 main.py:Python 渲染模板后的烧瓶背景处理,python,flask,Python,Flask,我正在尝试提交一个表单,用户可以在其中潜在地上传几个文件,从中触发一个后台进程,这将需要几分钟才能完成。我目前遇到的问题是,当用户单击Submit按钮时,在文件上载过程中,用户在几秒钟内似乎没有发生任何事情。是否有一种方法可以在文件上传和处理过程中重定向到(静态*)保留页,然后在后台处理完成后,呈现一个新模板 使用Python 3.6.1和Flask 0.12.2 *我现在说的是静态的,但在将来的某个时候,我希望使用AJAX来更新此页面,以便向用户提供更多信息 注意,我已经看到了几个类似的问题,
from flask import Flask, request, render_template, url_for, redirect
app = Flask(__name__, static_url_path = "/static", static_folder = "static")
@app.route("/", methods=['GET'])
def home():
return render_template("index.html")
@app.route("/in_progress", methods=['GET', 'POST'])
def in_progress():
if request.method == 'GET':
# Do the background processing here
return render_template('result.html') # This is the final part of the process
elif request.method == 'POST':
# Upload the files and do some pre-processing with the form
# This takes a couple of seconds so appears to not be doing anything for the user
# Want to render the GET 'in_progress.html' template at the top of this to give a better user experience
return render_template('in_progress.html') # Reloads same page using GET
index.html:
...some irrelevant HTML
<form action="{{ url_for('in_progress') }}" method="POST" id="form" name="form" enctype="multipart/form-data">
...other irrelevant HTML
…一些不相关的HTML
…其他不相关的HTML
仅供参考,烧瓶0.12.2从2017年5月开始。从那以后,所有的bug都得到了修复。谢谢@v25,但是我的工作受到公司政策的限制,我无法更新任何软件包。我已经要求提供我使用的所有库的最新版本,但这可能需要6个多月的时间。在更新的版本中有什么特别的东西可以解决我的问题吗?除非他们仔细地审核您编写的代码,否则这个策略毫无意义。什么能阻止您直接在代码中包含一个轻量级库,如rq
?我感觉到你的痛苦,但这可能不是进一步讨论的地方:-(您可能希望检查哪些答案可能会避免使用第三方LIB。您的理解可能会有所不同。仅供参考,Flask 0.12.2是从2017年5月开始的。请参阅,了解自那时以来修复的所有错误。谢谢@v25,但我受我工作的公司政策限制,无法更新任何软件包。我已要求更新所有库的最新版本我使用的是,但这可能要6个多月后才会发生。新版本中有什么特别的东西可以解决我的问题吗?除非他们仔细审核您编写的代码,否则这项政策毫无意义。什么能阻止您直接在代码中包含轻量级库,如rq
?我感觉到您的痛苦,但这可能y不是进一步讨论的地方:-(您可能希望检查哪些答案可能会避免第三方LIB。您的理解可能会有所不同。