jinja2の基本構文(値の取得、分岐構文「if,elif,else」、ループ構文「for」)

jinja2はPython用のテンプレートエンジンで、FlaskでWEBアプリケーションを作成作成する際に非常に有益なものです。

jinja2には独自の構文の記述方法があり、利用するにはその方法を覚える必要があります。

今回はこのjinja2の基本構文をまとめておきます。

スポンサーリンク

値の取得

jinja2で値を取得するには「{{ }}」で囲んでその変数名を指定します。

HTMLテンプレートには「{{ }}」で囲んだ値を記述します。

実行結果は

になります。

値の保存

jinja2で値を保存するには「{% set 変数名=値 %}」で行います。

HTMLテンプレートは以下ののようになります。

実行結果は

になります。

条件分岐-if、elif、else構文

jinja2で処理の条件分岐を行うには「if文」「elif文」「else文」を利用します。

HTMLテンプレートには「{% if 条件式 %}」「{% elif 条件式 %}」「{% else %}」と「{% endif %}」で文を囲んで記述します。

実行結果は

になります。

ループ-for構文

jinja2でループ処理の条件分岐を行うには「for文」を利用します。

単純なforループ

単純にある回数を繰り返す場合は「for文」のループ条件に「range」を利用するのが良いでしょう。

HTMLテンプレートには「{% for カウンター変数 in ループ条件 %}」と「{% endfor %}」で文を囲んで記述します。

とします。

実行結果は

になります。

配列(list)を処理するforループ

配列(list)を処理する場合は「for文」のループ条件に「range」を利用し、「range」には配列の長さを「length」フィルターを使って渡すと上手く行きます。

HTMLテンプレートでは「length」フィルターを利用します。

実行結果は

になります。

辞書型(dict)を処理するforループ

辞書型(dict)を処理する場合は「for文」のループ条件に「辞書型の変数」を指定して行います。

HTMLテンプレートでは辞書型(dict)の変数名をそのまま利用します。

実行結果は

になります。

まとめ

jinja2はPythonでWEBアプリを生成する際に非常に有益なHTMLテンプレートエンジンのうちの1つです。

これを機会にぜひマスターしましょう。

以上、jinja2の基本構文(値の取得、分岐構文「if,elif,else」、ループ構文「for」)でした。

タイトルとURLをコピーしました