Streamingのsnipetが掲載されてました。
(もしかして結構前から?)
Werkzeugには0.5から機能としてはあるみたいなんで、
きっと昔からできたんでしょう。
なかなか使い道ないけどTwitterのようなStreamingAPIとかかっこ良いですよね。
つーことでコード。
from flask import Flask
from flask import Response
import time
app = Flask(__file__)
@app.route("/streaming")
def streaming():
def generate():
while True:
time.sleep(1)
yield "test\n"
return Response(generate(),direct_passthrough=True,mimetype='text/plain')
if __name__ == "__main__":
app.run()
ResponseにStreamingするためのジェネレータを渡すだけ。
direct_passthroughはジェネレータを変更させないための引数らしい、wrapして返すため、後で変更されても影響を受けないようになると思われる(WSGIの仕様っぽい)。
mime/typeはお好きなものを。
それにしても簡単だなー。
0 件のコメント:
コメントを投稿