使用add_url_rule失敗,但@ app.route('')正常工作。Python燒瓶:Route vs add_url_rule,SSE
你好,我想添加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)
OK curl http://localhost:5000/streamroute
KO curl http://localhost:5000/stream
'回溯(最近呼叫最後): ... 文件「/Library/Python/2.7/site-packages/flask/ctx.py」,第251行,在__init__中 blueprint = self.request.blueprint File 「/Library/Python/2.7/site-packages/flask/wrappers.py」,第97行,藍圖 如果self.url_rule和'。' in self.url_rule.endpoint: TypeError:類型'function'的參數是不可迭代的 – thomas