python - 如何调用 python/flask 服务器从服务器端功能重新加载客户端页面?

标签 python flask

我正在开发一个小型 python/flask 项目,该项目将繁重的计算例程与浏览器界面连接起来。出于实际原因,我必须将计算保留在后台进程中,并在计算完成时重新加载/重定向页面(包含输出结果)。以下是我迄今为止所拥有的最小代码(按相反顺序):

interface.py

from flask import Flask
from threading import Thread
import time
app = Flask(__name__)

# step 4: rerender browser with output data
@app.route('/done')
def done(data_to_pass):
    # rerender browser's html here?
    print data_to_pass
    return data_to_pass

# step 3: heavy computation routine
def background():
    print "start runing backgroun process"
    time.sleep(3) # simulate heavy computation routine
    data = 'done from background'
    done(data)

# step 2: initiate background process
def init():
    t = Thread(target=background)
    t.daemon = True
    t.start()

# step 1: home interface
@app.route('/')
def front_end():
    init()
    return 'initiate bachground process'

if __name__ == '__main__':
    app.run()

interface.py正在运行,访问127.0.0.1:5000得到一个字符串initiate bachground process在浏览器中。但是,最终数据(本例中为字符串 done from background)仅在服务器终端中处理,而不是在浏览器中处理。

我相信这个过程对于大多数服务器来说都是常见的,但我找不到任何 flask 解决方案......或者我走错了方向?

最佳答案

如果您想知道该过程何时完成,我建议使用以下之一:

  • 长轮询
  • WebSocket

但是您可以重新加载整个页面:

window.location.reload()

最好从服务器仅返回后台进程的结果并仅更新页面的相关片段。

关于python - 如何调用 python/flask 服务器从服务器端功能重新加载客户端页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33778042/

相关文章:

python - FLASK REST API 在 POST 上返回 400

python - 自动化无聊的东西 Collat​​z 项目

Javascript - 删除 JSON 字符串中出现的 u',解析返回意外标记

Python - 使用 auth.User 模型作为 OneToOneField 的 Django 查询

python - 使用Flask提供Matplotlib图像的成语之间有什么区别?

python - Angular、Flask、mysql.connector 编程错误 : Wrong number of arguments

python - Pandas - 用空值替换行并删除符合两个条件的行

python - Python 3 : “Expected an indent Block” in a comment

javascript - 如何将 Python 连接到 Node.js?

javascript - 如何显示进度条,直到我收到 POST 调用的 200 状态代码