我知道这里有类似的问题,但他们没有帮助我。
在主py
文件中,我只需设置名为nowts
的全局变量,如下所示:
app.jinja_env.globals['nowts'] = datetime.datetime.now()
在主(基础)模板(base.html
文件)中,我只是传递和格式化日期时间,如下所示:
{% block navbar %}
...
<p>{{ nowts.strftime('%A, %b %d %Y / %X') }}</p>
...
{% endblock %}
例如,输出为:
Wednesday, Mar 26 2014 / 11:57:51
如您所见,日期和时间显示正确,但仅显示。几分钟后,我重新打开主页(或子页面),时间仍然相同。 如果用户刷新页面,如何更新nowts
全局变量?
答案 0 :(得分:5)
使用context processor为每个请求注入值:
@app.context_processor
def inject_template_globals():
return {
'nowts': datetime.datetime.utcnow(),
}
您通常希望为Web服务器使用UTC时间,而不是本地时间。你永远不知道你的要求来自世界的哪个地方。