flask yield流式没有流式返回,解决方案

使用显式刷新输出

关键代码

yield " " * 1024 + "\n\n"

完整代码

from flask import Flask, Response, stream_with_context
import time

app = Flask(__name__)

def generate_data():
    """ 模拟数据生成过程 """
    for i in range(10):
        yield f"data: {i}\n\n"
        time.sleep(1)
        # 显式刷新输出
        yield " " * 1024 + "\n\n"

@app.route('/stream')
def stream():
    return Response(stream_with_context(generate_data()), mimetype='text/event-stream')

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

posted @ 2024-09-11 21:11  Excel2016  阅读(344)  评论(0)    收藏  举报