Problem:
Generieren und Streamen von Daten in Echtzeit aus einem In der Flask-Ansicht möchten wir sie dynamisch in einem formatierten HTML anzeigen Vorlage.
Antwort:
Das Streamen von Daten innerhalb einer Flask-Antwort ist möglich, es ist jedoch nicht möglich, clientseitige Inhalte direkt zu aktualisieren. Um das gewünschte Ziel zu erreichen, verwenden Sie JavaScript und die folgenden Methoden:
# 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>
Hinweis:
Das obige ist der detaillierte Inhalt vonWie kann ich eine HTML-Vorlage dynamisch mit Echtzeitdaten aktualisieren, die aus einer Flask-Ansicht gestreamt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!