はじめに

Jinja は、高速で、表現力豊かで、拡張可能なテンプレートエンジンです。テンプレート内の特殊なプレースホルダーによって、Python の構文に似たコードを書くことができます。その後、テンプレートにデータを渡して、最終的なドキュメントをレンダリングします。

以下が含まれます

  • テンプレートの継承とインクルード。

  • テンプレート内でマクロの定義とインポート。

  • HTML テンプレートは自動エスケープを使用して、信頼できないユーザー入力による XSS を防止できます。

  • サンドボックス環境は、信頼できないテンプレートを安全にレンダリングできます。

  • 余分な構文を使用せずに、同期および非同期関数を自動的に処理するテンプレートの生成に対する非同期サポート。

  • Babel による I18N サポート。

  • テンプレートは、必要なときに最適化された Python コードにコンパイルされ、キャッシュされます。または、事前にコンパイルすることもできます。

  • 例外はテンプレート内の正しい行を指しており、デバッグを容易にします。

  • 拡張可能なフィルタ、テスト、関数、構文。

Jinja の哲学は、可能な限りアプリケーションロジックは Python に属しますが、機能性を制限しすぎることでテンプレート設計者の作業を困難にしてはならないということです。

インストール

Python の最新バージョンを使用することをお勧めします。Jinja は Python 3.7 以降をサポートしています。 仮想環境 を使用して、プロジェクトの依存関係を他のプロジェクトやシステムから分離することをお勧めします。

pip を使用して最新の Jinja バージョンをインストールします

$ pip install Jinja2

依存関係

Jinja をインストールすると、これらは自動的にインストールされます。

  • MarkupSafe は、インジェクション攻撃を防ぐために、テンプレートをレンダリングするときに信頼できない入力をエスケープします。

オプションの依存関係

これらのディストリビューションは自動的にはインストールされません。

  • Babel は、テンプレート内で翻訳をサポートします。