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