Flask - 输出到HTML而非控制台

3
我有一个问题的简单示例,当运行脚本时,我无法将Python脚本/函数结果发送到Flask HTML。我尝试过在SO上看到的所有方法,我相信它是可行的,但我已经卡了一段时间了。这里只是一个简单的示例,说明我无法让其正常工作。
Flask代码:
from flask import Flask, render_template
import time
app = Flask(__name__)

def mycounter():
    for x in range(0, 10):
        print(f"<p> {x} </p>")
        time.sleep(1)

@app.route("/")
@app.route("/index")
def index():
    return render_template('index.html', output=mycounter())

if __name__ == "__main__":
    app.run(port=80, debug=True)

HTML 代码:

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <p>{{ output }}</p>
</body>
</html>

我想要的是每秒钟从0数到9并且每秒钟将结果输出到HTML页面上,而不是控制台。我尝试使用popen,但可能使用方法不正确?谢谢!

1个回答

2
我猜你应该返回值而不是打印它:
def mycounter():
    test=[]
    for x in range(0, 10):
        time.sleep(1)
        test.append(x)
    return test

然后在页面中,可能要对值进行迭代,我不太确定。 - OakenDuck
这样做会在整个函数完成后打印列表。如果我能让它在每次循环后输出,而不是将其添加到列表中然后在最后显示列表,那就更接近我想要的“实时”输出了! - Jeremy
@Jeremy,提供的链接可能会对你有所帮助。如果只是在HTML页面上打印值,你应该返回该值而不是打印(因为打印会在控制台中显示)。 - KcH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接