Problème :
Générer et diffuser des données en temps réel à partir d'un Vue Flask, nous souhaitons l'afficher dynamiquement dans un HTML formaté modèle.
Réponse :
Le streaming de données dans une réponse Flask est possible, cependant, il n'est pas possible de mettre à jour directement le contenu côté client. Pour obtenir ce que vous souhaitez, utilisez JavaScript et les méthodes suivantes :
# 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>
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!