統合¶
Flask¶
Flask Web アプリケーションフレームワークは、Pallets によって同様に管理されており、デフォルトで Jinja テンプレートを使用します。Flask は Jinja 環境とテンプレートローダーをセットアップし、ビュー関数からテンプレートを簡単にレンダリングするための機能を提供します。
Django¶
Django では Jinja をテンプレートエンジンとして使用できます。詳細については、https://docs.djangoproject.com/en/stable/topics/templates/#support-for-template-engines を参照してください。
Babel¶
Jinja は、jinja2.ext.babel_extract
と呼ばれる Babel エクス トラクターエントリポイントを介してテンプレートから Gettext メッセージを抽出するためのサポートを提供します。このサポートは、I18N 拡張 拡張機能の一部として実装されています。
Gettext メッセージは、trans
タグとコード式から抽出されます。
テンプレートから Gettext メッセージを抽出するには、プロジェクトの Babel 抽出メソッド マッピングファイル に Jinja セクションが必要です。
[jinja2: **/templates/**.html]
encoding = utf-8
環境
の構文関連オプションは、マッピングファイルで構成値としても使用できます。たとえば、%
を 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