gpt4 book ai didi

Python Flask : Route vs add_url_rule, SSE

转载 作者:行者123 更新时间:2023-11-30 22:57:33 27 4
gpt4 key购买 nike

使用 add_url_rule 失败,但 @app.route('') 工作正常。

您好,我正在尝试将 SSE(服务器发送事件)添加到 Python Flask 应用程序中。不幸的是,该应用程序使用 SOMEOBJECT.app.add_url_rule管理路线,因此在这种情况下使用装饰器对我不起作用。

from flask import Flask, Response
import random
import time

app = Flask(__name__)
def eventStream():
# will send simple SSE style responses
while True:
waittt = random.random()
time.sleep(waittt)
yield "data: {}\n\n".format(str(waittt))
# This route works fine :)
@app.route("/streamroute")
def stream():
return Response(eventStream(), mimetype="text/event-stream")

# This route doesn't work :(
app.add_url_rule("/stream", stream)
app.run(debug=True)

好的curl <a href="http://localhost:5000/streamroute" rel="noreferrer noopener nofollow">http://localhost:5000/streamroute</a>

KO curl <a href="http://localhost:5000/stream" rel="noreferrer noopener nofollow">http://localhost:5000/stream</a>

最佳答案

from flask import Flask, Response                                              
import random
import time

app = Flask(__name__)
def eventStream():
# will send simple SSE style responses
while True:
waittt = random.random()
time.sleep(waittt)
yield "data: {}\n\n".format(str(waittt))
# This route works fine :)
@app.route('/streamroute')
def stream():
return Response(eventStream(), mimetype="text/event-stream")

# This route doesn't work :(
app.add_url_rule('/stream', 'stream', stream)
app.run(debug=True)

请参阅下面的文档,正确的语法是:

app.add_url_rule('/stream', 'stream', stream)        

了解更多:https://flask.palletsprojects.com/en/2.0.x/api/#flask.Flask.add_url_rule

关于Python Flask : Route vs add_url_rule, SSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604008/

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