首页 > 解决方案 > 在 while 循环中更新 Render_template

问题描述

是否可以在 while 循环中更新我的烧瓶应用程序 UI 的渲染模板?

我已经多次尝试在我的 while 循环中返回 render_template 以在每次 while 循环运行时更新 web ui。

@app.route('/test_try')
def test_try:
    list = []
    count = 0
    list_count = 10

    while count < list_count:
        list.append('new_count'+str(count))
        count += 1

    return render_template('test_try.html', list=list)

我希望我的 web ui (test_try.html) 更新通过 while 循环运行的每个计数 += 1。例如,现在它会更新 10 次运行,但都是在某个时间。我想增量更新每次运行,直到计数达到 10。

我曾尝试在 while 循环中渲染模板,但这似乎也不起作用。

标签: pythonpython-3.xflaskflask-restful

解决方案


一旦请求得到响应,Flask 就无法在没有收到另一个请求的情况下影响页面的内容。因此,您不能在每个 API 调用返回时都响应很多次。

您正在寻找的行为需要 JavaScript。你可以在这里看到一些关于如何处理从服务器推送数据到客户端的选项。

如果您可以从客户端启动请求,您还可以设置一系列 AJAX 调用,这些调用将在服务器成功从 API 获取数据时返回。

但是您应该问自己的一个问题是:服务器在此设置中添加了什么?为什么客户端不直接调用 API 并在 API 返回时根据需要更新页面?


推荐阅读