带有 jinja 渲染的 Flask 应用程序;不自动刷新网页

Flask app with jinja rendering; Does not auto refresh webpage

我有一个查询数据库的 Flask 应用程序,并使用 jinja 模板使用检索到的数据呈现 table。我希望网页在第一次点击后继续定期刷新,以便如果数据库中的数据发生变化,网页会显示新数据。

我尝试了很多其他人在网上建议的方法,但似乎没有任何效果。这是我尝试过的示例:

1) 将以下代码放入 jinja 模板文件中:

<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="refresh" content="5">
</head>

2) 将以下代码放入 jinja 模板文件中:

<head>
<script type="text/JavaScript">
function TimedRefresh( t ) {
setTimeout("location.reload(true);", t);
}
</script>
</head>

<body onload="JavaScript:TimedRefresh(2000);">
<p>Auto Refreshing Every 30 Seconds.</p>
</body> 

3) 将以下代码放入 jinja 模板文件中:

<head>
<script TYPE="text/javascript">
var datetime = null,
    date = null;

var update = function () {
    date = moment(new Date())
    datetime.html(date.format('dddd, MMMM Do YYYY, h:mm:ss a'));
};

$(document).ready(function(){
    datetime = $('#datetime')
    update();
    setInterval(update, 1000);
});
</script>
</head>

..和

<div id="datetime"></div>

等..

没有任何效果。该页面像门把手一样死了——第一次加载,但除非我按下按钮,否则不会自动刷新。 我真的很困惑。将不胜感激任何帮助。 任何形式的刷新都可以——不需要分段。 请帮忙。

谢谢, 尼拉

复制粘贴代码 below {% block page_content %} 行和 above <style> 行到模板文件中:

<script type="text/javascript">
var timer = function() {
    setTimeout(function(){ window.location.reload(); }, 1500);
};
timer();
</script>

您的文件应该是这样的:http://pastebin.com/G5tFxeA2

注意:这种刷新table数据的方式是一种极其糟糕的技术。您很可能想使用 API 查询 table 数据并重绘所有字段。