ホームページ >ウェブフロントエンド >jsチュートリアル >Flask ビューからストリーミングされたリアルタイム データを使用して HTML テンプレートを動的に更新するにはどうすればよいですか?
問題:
Flask ビュー。フォーマットされた HTML 内で動的に表示したいtemplate.
答え:
Flask 応答内でデータをストリーミングすることは可能ですが、クライアント側のコンテンツを直接更新することは現実的ではありません。目的を達成するには、JavaScript と次のメソッドを利用します。
# Server-side Flask code @app.route("/stream") def stream(): def generate(): for i in range(500): yield "{}\n".format(sqrt(i)) sleep(1) return app.response_class(generate(), mimetype="text/plain") # Client-side JavaScript var timer = setInterval(function() { // Handle new data if (xhr.readyState == XMLHttpRequest.DONE) { clearInterval(timer); } }, 1000);
# Server-side Flask code @app.route("/stream") def stream(): @stream_with_context def generate(): yield render_template_string('<link rel=stylesheet href="{{ url_for("static", filename="stream.css") }}">') for i in range(500): yield render_template_string("<p>{{ i }}: {{ s }}</p>\n", i=i, s=sqrt(i)) sleep(1) return app.response_class(generate())
<!-- Client-side HTML --> <iframe src="{{ url_for("stream") }}"></iframe>
注:
以上がFlask ビューからストリーミングされたリアルタイム データを使用して HTML テンプレートを動的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。