Python 在前端显示进度条,直到处理函数在flask web应用程序的后端完成执行

Python 在前端显示进度条,直到处理函数在flask web应用程序的后端完成执行,python,flask,progress-bar,Python,Flask,Progress Bar,我正在为我的办公室网站开发一个在线GNSS后处理门户。在应用程序中,用户必须输入2个文件。我已经实现了一个html表单来从用户那里获取相关信息。 一旦用户提交了文件,后端将执行后处理功能。由于函数很长,我想显示一个后台进度条 以下代码表示后处理功能 @app.route('/pp.php', methods=['GET', 'POST']) def pp(): pp = MyForm() target = os.path.join(APP_ROOT, 'images/')

我正在为我的办公室网站开发一个在线GNSS后处理门户。在应用程序中,用户必须输入2个文件。我已经实现了一个html表单来从用户那里获取相关信息。

一旦用户提交了文件,后端将执行后处理功能。由于函数很长,我想显示一个后台进度条

以下代码表示后处理功能

@app.route('/pp.php', methods=['GET', 'POST'])
def pp():
    pp = MyForm()
    target = os.path.join(APP_ROOT, 'images/')
    print(target)

    if not os.path.isdir(target):
        os.mkdir(target)

    for obsfile in request.files.getlist("obsfile"):
        print(obsfile)
        filename = obsfile.filename
        destination = "/".join([target, filename])
        print(destination)
        obsfile.save(destination)

    for navfile in request.files.getlist("navfile"):
        print(navfile)
        filename = navfile.filename
        destination = "/".join([target, filename])
        print(destination)
        navfile.save(destination)
        a=obsfile.filename
        b=navfile.filename
        command='rnx2rtkp -p 0 -m '+pp.textarea.data+' -n -o out.pos '+a+' '+b
        os.system(command)

        email_user = '*******'
        email_password = '******'
        email_send = pp.email.data

        subject = 'subject'

        msg = MIMEMultipart()
        msg['From'] = email_user
        msg['To'] = email_send
        msg['Subject'] = subject

        body = 'This is your Post-Processed position file'
        msg.attach(MIMEText(body,'plain'))

        filename='out.pos'
        attachment  =open(filename,'rb')

        part = MIMEBase('application','octet-stream')
        part.set_payload((attachment).read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition',"attachment; filename= "+filename)

        msg.attach(part)
        text = msg.as_string()
        server = smtplib.SMTP('smtp.gmail.com',587)
        server.starttls()
        server.login(email_user,email_password)


        server.sendmail(email_user,email_send,text)
        server.quit()

    return render_template('pp.php', pp=pp)

请告诉我任何可能有助于解决此问题的建议

您应该使用类似的方法运行后台任务,并使用Javascript根据芹菜任务返回的状态更新浏览器