整合

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_extractBabel 擷取器進入點,從範本擷取 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