資料內(nèi)容:
基礎(chǔ)
Jinja2 使用一個名為 Environment 的中心對象。這個類的實例用于存儲配 置、全局對象,并用于從文件系統(tǒng)或
其它位置加載模板。即使你通過:class:Template 類的構(gòu)造函數(shù)用字符串創(chuàng)建模板,也會為你自動創(chuàng)建一個環(huán)境,
盡管是共享的。
大多數(shù)應(yīng)用在應(yīng)用初始化時創(chuàng)建一個 Environment 對象,并用它加載模板。 在某些情況下,如果使用多份配
置,使用并列的多個環(huán)境無論如何是有用的。
配置 Jinja2 為你的應(yīng)用加載文檔的最簡單方式看起來大概是這樣:
from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('yourapplication', 'templates'))
這會創(chuàng)建一個默認(rèn)設(shè)定下的模板環(huán)境和一個在 yourapplication python 包中的 templates文件夾中尋找模板的
加載器。多個加載器是可用的,如果你需要從 數(shù)據(jù)庫或其它資源加載模板,你也可以自己寫一個。
你只需要調(diào)用 get_template() 方法從這個環(huán)境中加載模板,并會返回已加載的 Template:
template = env.get_template('mytemplate.html')
用若干變量來渲染它,調(diào)用 render() 方法:
print template.render(the='variables', go='here')
使用一個模板加載器,而不是向 Template 或 Environment.from_string() 傳遞字符串,有許多好處。除了使用
上便利, 也使得模板繼承成為可能。