2014-03-26 54 views
2

我知道這裏有類似的問題,但他們沒有幫助我。如何在Jinja2中將時間戳更新爲全局變量?

在主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全局變量?

回答

5

使用context processor注入價值每個請求

@app.context_processor 
def inject_template_globals(): 
    return { 
     'nowts': datetime.datetime.utcnow(), 
    } 

您通常需要使用UTC時間,不是本地時間,對於Web服務器。你永遠不知道你的請求來自哪裏。