add_url_ruleの使用は失敗しますが、@ app.route( '')は正常に動作します。Python Flask:ルートvs add_url_rule、SSE
こんにちは、私はSSE(Server Sent Events)を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 ファイル"/Library/Python/2.7/site-packages/flask/wrappers.py"、97行目、青写真 の場合self.url_ruleと '。' in self.url_rule.endpoint: TypeError: 'function'型の引数が反復可能ではありません – thomas