Python 3.x 当前时刻浏览器中的当前时间刷新未更新
按照python3.4、jinja2、烧瓶力矩(0.5.1)、烧瓶(0.10.1)集成的基本设置。 我正在尝试简单理解工作原理的能力。 该示例毫无意义,但我想让浏览器显示:Python 3.x 当前时刻浏览器中的当前时间刷新未更新,python-3.x,flask,jinja2,momentjs,Python 3.x,Flask,Jinja2,Momentjs,按照python3.4、jinja2、烧瓶力矩(0.5.1)、烧瓶(0.10.1)集成的基本设置。 我正在尝试简单理解工作原理的能力。 该示例毫无意义,但我想让浏览器显示: 首先,实时的实际时间(“本地时间是…”)不断地实时更新 第二,时间流逝(“那是……”) Jinja2代码: <p>The local time is {{ moment(current_time).format('LT', refresh=True) }}.</p> <p&g
- 首先,实时的实际时间(“本地时间是…”)不断地实时更新
- 第二,时间流逝(“那是……”)李>
<p>The local time is {{ moment(current_time).format('LT', refresh=True) }}.</p>
<p>That was {{ moment(current_time).fromNow(refresh=True) }}</p>
本地时间是{时刻(当前时间)。格式('LT',refresh=True)}
那是{时刻(当前时间)。从现在开始(刷新=真)}
第二行刷新在浏览器中工作正常(“那是1/2/3分钟前”),表示所有库都正常工作,但第一行刷新不工作
我认为方法矩(current_time).format('LT',refresh=True)会在refresh选项设置为“True”的情况下实时显示时间,但事实并非如此
查看浏览器标记,所有库都在那里,没有错误。请参阅下面的标记。
感谢您的任何提示,或者我误解了您的能力
浏览器来源:
<div class="container">
<div class="page-header">
<h1>Hello, Flask!</h1>
</div>
</div>
<p>The local time is <span class="flask-moment" data-timestamp="2016-01-28T12:19:20Z" data-format="format('LT')" data-refresh="60000" style="display: none">2016-01-28T12:19:20Z</span>.</p>
<p>That was <span class="flask-moment" data-timestamp="2016-01-28T12:19:20Z" data-format="fromNow(0)" data-refresh="60000" style="display: none">2016-01-28T12:19:20Z</span></p>
<script src="/static/bootstrap/jquery.min.js?bootstrap=3.3.5.7"></script>
<script src="/static/bootstrap js/bootstrap.min.js?bootstrap=3.3.5.7"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment-with-locales.min.js"></script>
<script>
moment.locale("en");
function flask_moment_render(elem) {
$(elem).text(eval('moment("' + $(elem).data('timestamp') + '").' + $(elem).data('format') + ';'));
$(elem).removeClass('flask-moment').show();
}
function flask_moment_render_all() {
$('.flask-moment').each(function() {
flask_moment_render(this);
if ($(this).data('refresh')) {
(function(elem, interval) { setInterval(function() { flask_moment_render(elem) }, interval); })(this, $(this).data('refresh'));
}
})
}
$(document).ready(function() {
flask_moment_render_all();
});
你好,小瓶子!
当地时间是2016-01-28512:19:20Z
那是2016-01-28 12:19:20Z
地点(“en”);
函数\u矩\u渲染(元素){
$(elem).text(eval('moment('+$(elem).data('timestamp')+'))。+$(elem.data('format')+';'));
$(elem).removeClass('flask-moment').show();
}
函数flask\u moment\u render\u all(){
$('.flask moment')。每个(函数(){
烧瓶、力矩、渲染(本);
if($(this).data('refresh')){
(function(elem,interval){setInterval(function(){flask_moment_render(elem)},interval);})(this,$(this).data('refresh');
}
})
}
$(文档).ready(函数(){
烧瓶?力矩?渲染?全部();
});
因此,根据文档,refresh=true似乎只会每分钟更新一次。你有没有给它一分钟的时间来确认它没有刷新 渲染的日期和时间可以通过传递 上述任何函数的refresh=True参数。这是 对于相对格式很有用,因为它们会随着时间而更新 通行证。刷新间隔固定为一分钟
因此,根据文档,refresh=true似乎只会每分钟更新一次。你有没有给它一分钟的时间来确认它没有刷新 渲染的日期和时间可以通过传递 上述任何函数的refresh=True参数。这是 对于相对格式很有用,因为它们会随着时间而更新 通行证。刷新间隔固定为一分钟
这是对Flask Moment如何工作的误解,可能是因为我的文档不太清楚 放入Jinja模板中的
瞬间(当前时间).format('LT',refresh=True)
表达式在服务器上运行,而不是在浏览器中运行。特别是,current\u time
变量有一个固定值,我认为您是在Python代码中指定的
运行此表达式的结果是在浏览器上运行一些Javascript代码。当您通过refresh=True
时,此Javascript代码每分钟运行一次。但是,虽然代码确实重复运行,但渲染时间始终相同,因为服务器上设置了current_time
的值,并且没有更新。自动刷新的使用仅适用于moment.js的“动态”渲染选项之一,例如“X秒/分钟前”格式,因为这些选项会随着时间的推移而改变
如果您想实现时钟之类的东西来更新时间,那么您可能需要一个在浏览器上用Javascript实现所有功能的解决方案。这是对Flask Moment如何工作的误解,可能是因为我的文档不太清楚 放入Jinja模板中的
瞬间(当前时间).format('LT',refresh=True)
表达式在服务器上运行,而不是在浏览器中运行。特别是,current\u time
变量有一个固定值,我认为您是在Python代码中指定的
运行此表达式的结果是在浏览器上运行一些Javascript代码。当您通过refresh=True
时,此Javascript代码每分钟运行一次。但是,虽然代码确实重复运行,但渲染时间始终相同,因为服务器上设置了current_time
的值,并且没有更新。自动刷新的使用仅适用于moment.js的“动态”渲染选项之一,例如“X秒/分钟前”格式,因为这些选项会随着时间的推移而改变
如果您想实现时钟之类的更新时间的功能,那么您可能需要一个在浏览器上用Javascript实现所有功能的解决方案。Chris-是的,我确实给了它很多时间。jinja脚本中两行的刷新时间相同,第二行按预期更新,但第一行不更新。谢谢。克里斯-是的,我确实花了很多时间。jinja脚本中两行的刷新时间相同,第二行按预期更新,但第一行不更新。谢谢,米盖尔,谢谢你的回复。是的,我现在明白了,并且确实按照你的建议用javascript编写了代码。米格尔,谢谢你的回复。是的,我现在理解了,并且确实按照您的建议用javascript对其进行了回顾性编码。