gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:20:31 25 4
gpt4 key购买 nike

我正在开发一个小型 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com