来源:https://blog.csdn.net/asdq2w3d/article/details/131432889
from flask import stream_with_context, Response
from time import sleep
progress_bar_ratio = 0.
def get_bar_ratio():
global progress_bar_ratio
progress_bar_ratio += 1
return progress_bar_ratio
@app.route('/api/stream')
def progress():
@stream_with_context
def generate():
# global ratio
# ratio = get_bar_ratio() #获取后端进度条数据,最初的时候是0
for ratio in range(10):
# while ratio < 10: #循环获取,直到达到100%
yield "data:" + str(ratio) + "\n\n"
print("ratio:", ratio)
#最好设置睡眠时间,不然后端在处理一帧的过程中前端就访问了好多次
sleep(1)
return Response(generate(), mimetype='text/event-stream')