烧瓶应用程序与jinja渲染;不会自动刷新网页

时间:2016-06-18 12:01:12

标签: javascript flask jinja2

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

我尝试过其他人在网上建议的很多东西,但似乎没什么用。以下是我尝试过的示例:

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>

等。

没有任何效果。该页面作为门把手死了 - 第一次加载,但除非我按下按钮,否则不会自动刷新。 我真的很困惑。非常感谢任何帮助。 任何一种清爽都很好 - 不需要分段。 请帮忙。

谢谢你, 尼拉。

1 个答案:

答案 0 :(得分:1)

复制粘贴模板文件中 {% block page_content %} <style>行下面的代码

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

这是您的文件的外观:http://pastebin.com/G5tFxeA2

注意:这种刷新表数据的方法是一种非常糟糕的技术。您很可能希望使用API​​查询表数据并重绘所有字段。