整合¶
Flask¶
Flask 網路應用程式框架,同樣由 Pallets 維護,預設使用 Jinja 範本。Flask 為你設定 Jinja 環境與範本載入器,並提供功能,輕鬆從檢視功能呈現範本。
Django¶
Django 支援使用 Jinja 作為其範本引擎,請參閱 https://django-docs.dev.org.tw/en/stable/topics/templates/#support-for-template-engines。
Babel¶
Jinja 提供支援,透過稱為 jinja2.ext.babel_extract
的 Babel 擷取器進入點,從範本擷取 gettext 訊息。支援是作為 i18n 擴充套件 擴充套件的一部分來實作的。
從 trans
標籤和程式碼運算式擷取 gettext 訊息。
要從範本擷取 gettext 訊息,專案需要在 Babel 擷取方法 對應檔案 中有一個 Jinja 區段。
[jinja2: **/templates/**.html]
encoding = utf-8
在對應檔案中,Environment
相關選項的語法也可用作設定值。例如,要告訴擷取器範本使用 %
作為 line_statement_prefix
,你可以使用此程式碼
[jinja2: **/templates/**.html]
encoding = utf-8
line_statement_prefix = %
擴充套件 也可以透過傳遞一個由匯入路徑組成的逗號分隔清單作為 extensions
值,來進行定義。i18n 擴充套件會自動加入。
預設會忽略範本語法錯誤。假設測試會偵測到範本中的語法錯誤。如果你不想忽略這些錯誤,請加入 silent = false
到設定中。
Pylons¶
將 Jinja 整合到 Pylons 應用程式是一件很容易的事。
範本引擎會設定在 config/environment.py
中。Jinja 的設定看起來像這樣
from jinja2 import Environment, PackageLoader
config['pylons.app_globals'].jinja_env = Environment(
loader=PackageLoader('yourapplication', 'templates')
)
之後,你可以使用 pylons.templating
模組中的 render_jinja
函式來產生 Jinja 範本。
此外,最好將 Pylons c
物件設定為嚴格模式。預設情況下,c
物件中遺失屬性的屬性存取會傳回空白字串,而不是未定義的物件。如要變更此設定,請將這一行加入 config/environment.py
config['pylons.strict_c'] = True