问题:
从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中文网其他相关文章!