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 件のコメント:
コメントを投稿