Python 渲染模板后的烧瓶背景处理

Python 渲染模板后的烧瓶背景处理,python,flask,Python,Flask,我正在尝试提交一个表单,用户可以在其中潜在地上传几个文件,从中触发一个后台进程,这将需要几分钟才能完成。我目前遇到的问题是,当用户单击Submit按钮时,在文件上载过程中,用户在几秒钟内似乎没有发生任何事情。是否有一种方法可以在文件上传和处理过程中重定向到(静态*)保留页,然后在后台处理完成后,呈现一个新模板 使用Python 3.6.1和Flask 0.12.2 *我现在说的是静态的,但在将来的某个时候,我希望使用AJAX来更新此页面,以便向用户提供更多信息 注意,我已经看到了几个类似的问题,

我正在尝试提交一个表单,用户可以在其中潜在地上传几个文件,从中触发一个后台进程,这将需要几分钟才能完成。我目前遇到的问题是,当用户单击Submit按钮时,在文件上载过程中,用户在几秒钟内似乎没有发生任何事情。是否有一种方法可以在文件上传和处理过程中重定向到(静态*)保留页,然后在后台处理完成后,呈现一个新模板

使用Python 3.6.1和Flask 0.12.2

*我现在说的是静态的,但在将来的某个时候,我希望使用AJAX来更新此页面,以便向用户提供更多信息

注意,我已经看到了几个类似的问题,一般的答案是使用像芹菜这样的模块来执行异步操作。不幸的是,由于公司政策,我无法下载新的软件包,因此我无法访问芹菜

main.py:

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。您的理解可能会有所不同。