はじめに—Jinjaドキュメント
提供:Dev Guides
Jinja/docs/3.0.x/intro
序章
Jinjaは、高速で表現力豊かで拡張可能なテンプレートエンジンです。 テンプレート内の特別なプレースホルダーを使用すると、Python構文に似たコードを記述できます。 次に、テンプレートにデータが渡され、最終的なドキュメントがレンダリングされます。
含まれるもの:
- テンプレートの継承と包含。
- テンプレート内でマクロを定義およびインポートします。
- HTMLテンプレートは、自動エスケープを使用して、XSSが信頼できないユーザー入力を防ぐことができます。
- サンドボックス環境では、信頼できないテンプレートを安全にレンダリングできます。
- 追加の構文なしで同期および非同期関数を自動的に処理するテンプレートを生成するための非同期サポート。
- BabelによるI18Nのサポート。
- テンプレートは、最適化されたPythonコードにジャストインタイムでコンパイルされてキャッシュされます。または、事前にコンパイルすることもできます。
- 例外は、デバッグを容易にするためにテンプレートの正しい行を指します。
- 拡張可能なフィルター、テスト、関数、さらには構文。
Jinjaの哲学は、アプリケーションロジックは可能であればPythonに属しますが、機能を制限しすぎてテンプレートデザイナーの仕事を難しくするべきではないというものです。
インストール
最新バージョンのPythonを使用することをお勧めします。 JinjaはPython3.6以降をサポートしています。 また、プロジェクトの依存関係を他のプロジェクトやシステムから分離するために、仮想環境を使用することをお勧めします。
pipを使用して最新のJinjaバージョンをインストールします。
$ pip install Jinja2
依存関係
これらは、Jinjaのインストール時に自動的にインストールされます。
- MarkupSafe は、インジェクション攻撃を回避するために、テンプレートをレンダリングするときに信頼できない入力をエスケープします。