基礎(chǔ)

2018-02-24 15:39 更新

Jinja2 使用一個(gè)名為?Environment?的中心對(duì)象。這個(gè)類的實(shí)例用于存儲(chǔ)配 置、全局對(duì)象,并用于從文件系統(tǒng)或其它位置加載模板。即使你通過: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)境無論如何是有用的。

配置 Jinja2 為你的應(yīng)用加載文檔的最簡(jiǎn)單方式看起來大概是這樣:

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')

用若干變量來渲染它,調(diào)用?render()?方法:

print template.render(the='variables', go='here')

使用一個(gè)模板加載器,而不是向?Template?或?Environment.from_string()?傳遞字符串,有許多好處。除了使用上便利, 也使得模板繼承成為可能。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)