使用Flask实现强制页面刷新的最佳方法是什么?

Ada*_*wis 22 html javascript python flask

背景
我有大量的字段将从外部进程实时更新.我想定期更新Flask托管页面,以向连接的用户显示任何更改.理想情况下,整个页面不会刷新,这是对类似系统的抱怨,而只是更新页面上的许多字段.

当前方向
我目前的想法是使用可能使用JavaScript来处理这个问题,但我不确定在使用Flask时是否可行.

有没有办法使用Flask或第三方模块来实现这一目标?

附加信息
将使用各种插槽和串行端口更新数据.每个接口都将在其自己的线程中运行并更新共享内存.请注意,Flask/Web界面对共享内存具有只读写入,可由其他线程更新.

总客户端池不应超过20人.这是测试系统的Web界面,通常在任何给定时间只有1-5人连接到它.

Mic*_*son 17

要避免刷新整个页面,您需要使用所谓的AJAX.看起来这很容易在烧瓶中实现.

由于您希望它定期发生,您需要从javascript中的计时器函数调用您的AJAX函数.

这意味着您只需将烧瓶页面中的javascript放入计时器调用中.

这里大概是javascript的样子:

setInterval(                               //Periodically 
  function()
  {
     $.getJSON(                            //Get some values from the server
        $SCRIPT_ROOT + '/get_values',      // At this URL
        {},                                // With no extra parameters
        function(data)                     // And when you get a response
        {
          $("#result").text(data.result);  // Write the results into the 
                                           // #result element
        });
  },
  500);                                    // And do it every 500ms
Run Code Online (Sandbox Code Playgroud)


jco*_*ado 5

我认为最简单的方法可能是使用 javascript,正如您在问题中已经建议的那样。在这种情况下,Flask 只会提供一个 HTML 文档,其中包含一些将由浏览器执行的 javascript 代码,所以我不明白为什么这会导致 Flask 出现任何问题。在此页面中,我发现了一些使用不同组合的示例,例如使用计时器(这似乎正是您要找的)。