Python 2.7 如何每分钟调用一次render_template()

Python 2.7 如何每分钟调用一次render_template(),python-2.7,flask,Python 2.7,Flask,我对烧瓶不熟悉。对于由不断变化的数据提供的给定页面,如何每分钟调用一次呈现模板('prices.html',stock_price) 我试过这个: throttle.Throttle(period=60) # 60 second throttle while True: stock_price = get_stock_price() render_template('prices.html', stock_price=stock_price) throttle.check()

我对烧瓶不熟悉。对于由不断变化的数据提供的给定页面,如何每分钟调用一次呈现模板('prices.html',stock_price)

我试过这个:

throttle.Throttle(period=60) # 60 second throttle
while True:
   stock_price = get_stock_price()
   render_template('prices.html', stock_price=stock_price)
   throttle.check() # Check if 60 seconds have passed otherwise sleep
唯一有效的方法是
返回渲染模板(…)
。显然,render_template()必须是return语句的一部分。不幸的是,一旦返回被称为游戏结束


我如何做到这一点?我假设这只是我的无知。

当你呈现模板时,你运行Flask进程,在呈现模板文件后返回一个HTML,正如你所说,你使用return,游戏就结束了

即使你会找到一种很难编写代码的方法,但这不是一种很好的方法。您将浪费太多的服务器调用和用户等待时间

简单的方法 编写一个非常简单的Python函数,只返回股票编号(我想您已经有了一个-
get\u stock\u price()
) 但我会用一条路线来装饰它(比如“/getprice”)。每一个进入这个页面的人都会得到一个黑色页面,但股票价格文本除外

现在是真正的魔术-在HTML页面上使用JQuery AJAX调用此函数:

$.ajax({
  type: "POST",
  url: "/getprice",
})
  .done(function( price ) {
    $("#price-box").val(price)
  });
嘿,等等,我的“每分钟一次”怎么样

当然,我们可以将此ajax调用插入到
setInerval()
函数中,如下所示:

setInterval(function() {
    $.ajax({
      type: "POST",
      url: "/getprice",
    })
      .done(function( price ) {
        $("#price-box").val(price)
      });
}, 1000 * 60); 
如果你需要帮忙,告诉我

专业的方法 好的,所以您设法每分钟发送一次对
get\u stock\u price()
函数的请求

太好了

但是性能呢

我猜你的
get\u stock\u price()

我要做的是:

每分钟将来自
get\u stock\u price()
的数据存储在数据库中(将完成此工作),然后当用户请求(AJAX请求)此数据时,将其从数据库中取出


通过这种方式,服务器将在后台工作,用户不会看到其数据加载速度有任何不同。

我刚刚发现,可以根据meta标记自动重新加载页面
其中
60
是秒数。但是,想想每60秒刷新一次的用户,你会不会疯了?