即時顯示從 Flask 視圖串流的資料
在 Flask 中,從視圖串流傳輸資料非常簡單。但是,無法使用此流動態更新 HTML 範本。
JavaScript 和 XMLHttpRequest
一個解決方案是使用 JavaScript 和 XMLHttpRequest。我們可以:
範例:
# 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>
使用>另一種方法涉及使用用於顯示流式HTML 輸出的iframe。雖然這允許樣式靈活性和其他優點,但它也帶來了缺點:
更高的資源使用index.html(主模板)
<p>All output:</p> <iframe src="{{ url_for('stream') }}"></iframe>
@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)
透過使用JavaScript/XMLHttpRequest 或 iframe 方法,您可以有效地顯示 Flask 視圖中的串流資料並即時維護更新。
body { font-family: sans-serif; } p { margin-bottom: 10px; }
以上是如何顯示從 Flask 視圖串流的即時資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!