一尘不染

如何在网页中连续显示python输出?

flask

我希望能够访问网页,它将运行python函数并在网页中显示进度。

因此,当你访问网页时,你可以看到脚本的输出,就像你从命令行运行脚本一样,并在命令行中看到输出。

我需要在功能中做什么?

我需要在模板中做什么?

编辑:

我正在尝试将Markus Unterwaditzer的代码与模板一起使用。

{% extends "base.html" %}
{% block content %}

{% autoescape false %}

{{word}}

{% endautoescape %}

{% endblock %}

Python代码

import flask
from flask import render_template
import subprocess
import time

app = flask.Flask(__name__)

@app.route('/yield')
def index():
    def inner():
        for x in range(1000):
            yield '%s<br/>\n' % x
            time.sleep(1)
    return render_template('simple.html', word=inner())
    #return flask.Response(inner(), mimetype='text/html')  # text/html is required for most browsers to show the partial page immediately

app.run(debug=True, port=8080)

它可以运行,但我在浏览器中看不到任何内容。


阅读 961

收藏
2020-04-07

共1个答案

一尘不染

这是一个非常简单的应用程序,可以使用普通的HTTP流式传输流程的输出:

import flask
import time

app = flask.Flask(__name__)

@app.route('/yield')
def index():
    def inner():
        for x in range(100):
            time.sleep(1)
            yield '%s<br/>\n' % x
    return flask.Response(inner(), mimetype='text/html')  # text/html is required for most browsers to show the partial page immediately

app.run(debug=True)
2020-04-07