Masalah:
Menjana dan menstrim data dalam masa nyata daripada Paparan kelalang, kami mahu memaparkannya secara dinamik dalam HTML berformat templat.
Jawapan:
Penstriman data dalam respons Flask adalah mungkin, walau bagaimanapun, anda tidak boleh mengemas kini kandungan sebelah pelanggan secara langsung. Untuk mencapai yang diingini, gunakan JavaScript dan kaedah berikut:
# 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>
Nota:
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengemas kini templat HTML secara dinamik dengan data masa nyata yang distrim daripada paparan Flask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!