Anzeigen von gestreamten Daten aus einer Flask-Ansicht in Echtzeit
In Flask ist das Streamen von Daten aus einer Ansicht unkompliziert. Es ist jedoch nicht möglich, eine HTML-Vorlage mit diesem Stream dynamisch zu aktualisieren.
JavaScript und XMLHttpRequest
Eine Lösung ist die Verwendung von JavaScript und XMLHttpRequest. Wir können:
Beispiel:
# App app = flask.Flask(__name__) # Streaming view @app.route('/') def index(): def generate(): # Simulate data generation for i in range(500): yield str(i) + '<br/>\n' return flask.Response(generate(), mimetype='text/html') # Run the app app.run(debug=True)
<!-- Template --> <p>Latest output: <span>
Verwendung eines Iframes
Ein anderer Ansatz beinhaltet die Verwendung ein Iframe zum Anzeigen der Streaming-HTML-Ausgabe. Dies ermöglicht zwar Gestaltungsflexibilität und andere Vorteile, bringt aber auch Nachteile mit sich:
Beispiel:
index.html (Hauptvorlage)
<p>All output:</p> <iframe src="{{ url_for('stream') }}"></iframe>
Streaming Anzeigen
@app.route('/stream') def stream(): @stream_with_context def generate(): yield '<link rel=stylesheet href="{{ url_for('static', filename='stream.css') }}">' for i in range(500): yield '<p>{{ i }}: {{ s }}</p>\n'.format(i=i, s=math.sqrt(i)) sleep(1)
stream.css (Optional Stylesheet)
body { font-family: sans-serif; } p { margin-bottom: 10px; }
Durch die Verwendung der JavaScript/XMLHttpRequest- oder der Iframe-Methoden können Sie gestreamte Daten aus Ihrer Flask-Ansicht effektiv anzeigen und Aktualisierungen in Echtzeit verwalten.
Das obige ist der detaillierte Inhalt vonWie kann ich aus einer Flask-Ansicht gestreamte Echtzeitdaten anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!