這裏是 Jinja2通用模板語言的文檔。 Jinja2 在其是一個 Python 2.4 庫以前,被設計 爲是靈活、快速和安全的。若是你接觸過其它的基於文本的模板語言,好比 Smarty 或 Django ,那麼 Jinja2 會讓你有 賓至如歸的感受。Jinja2 經過堅持 Python 原則來保證對設計者和開發者友好,爲模板環 境添加有幫助的功能。css
這裏是 Jinjin2 通用模板語言的文檔。 Jinja2 在其是一個 Python 2.4 庫以前,被設計 爲是靈活、快速和安全的。html
若是你接觸過其它的基於文本的模板語言,好比 Smarty 或 Django ,那麼 Jinja2 會讓你有 賓至如歸的感受。Jinja2 經過堅持 Python 原則來保證對設計者和開發者友好,爲模板環 境添加有幫助的功能。python
Jinja2 須要至少 Python 2.4 版原本運行。此外,若是你使用 Python 2.4 ,一個可 以建立 python 擴展的可用的 C 編譯器會爲調試器安裝。git
若是你沒有一個可用的 C 編譯器,而且你視圖安裝帶調試支持的源碼版本,你會獲得一個 編譯器錯誤。 If you don’t have a working C-compiler and you are trying to install the sourcegithub
條條大路通 Jinja2 。若是你不肯定怎麼作,用 Python egg 或 tarball 吧。api
你能夠用 easy_install 或 pip 安裝最新的版本的 Jinja2:安全
sudo easy_install Jinja2
sudo pip install Jinja2
這會在你的 Python 安裝中的 site-packages 目錄安裝一個 Jinja2 egg 。app
(若是你在 Windows 的命令行中安裝,省略 sudo 而且確保你用管理員權限運行 命令行)單元測試
注意這須要你已經安裝了 setuptools 或 distribute ,首選後者。測試
這會在你 Python 安裝的 site-packages 目錄安裝 Jinja2 。
做爲第四步的替代選擇,你也能夠執行 python setup.py develop ,這會經過 disbribute 在開發模式下安裝包。這樣也有編譯 C 擴展的優點。
從 2.5.1 開始, Jinja2 會檢查是否安裝 MarkupSafe 模塊。若是它找到了, 它會用這個模塊的 Markup 類來代替自帶的。 MarkupSafe 替換 Jinja2 中附帶的 老的加速模塊,其優點在於更好的安裝腳本,自動試圖安裝 C 的版本並在不可行時 漂亮地退化到純 Python 實現的版本。
MarkupSafe 的 C 實現要快得多,並推薦用於 Jinja2 自動轉義。
默認 Jinja2 不會編譯調試支持模塊。若是你沒有 Python 頭文件或可用的編譯器, 啓用它會失敗。這當你在 Windows 上安裝 Jinja2 是很常見的狀況。
因爲調試模式只對 Python 2.4 是必要的,因此你不須要這麼作,除非你在運行 2.4:
sudo python setup.py --with-debugsupport install
本節簡要介紹 Jinja2 模板的 Python API 。
最基本的方式就是經過 Template 建立一個模板並渲染它。 若是你的模板不是從字符串加載,而是文件系統或別的數據源,不管如何這都不 是推薦的方式:
>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')
>>> template.render(name='John Doe')
u'Hello John Doe!'
經過建立一個 Template 的實例,你會獲得一個新的模板對象,提供一 個名爲 render() 的方法,該方法在有字典或關鍵字參數時調用 擴充模板。字典或關鍵字參數會被傳遞到模板,即模板「上下文」。
如你所見, Jinja2 內部使用 unicode 而且返回值也是 unicode 字符串。因此確 保你的應用裏也確實使用 unicode 。
Jinja 2.3 帶來 Python 3 的實驗性支持。這意味着在新版本上,全部的單元測試 都會經過,可是仍有一些小 bug 和不一致的行爲。若是你發現任何 bug ,請向 Jinja bug tracker 提供反饋。
也請記住本文檔是爲 Python 2 編撰的,你會須要手動把示例代碼轉換爲 Python 3 的語法。