◾️はじめに
Jinja2で変数が文字列もしくは1要素のタプルの場合、文字列として扱い 1文字づつループされてしまい、その対策として変数をチェックすることを 調べたので、Jinja2の変数全般をまとめてみた
目次
【1】変数定義 【2】変数参照 【3】変数チェック 1)未定義かどうか 2)Noneかどうか 3)文字列かどうか 4)要素かどうか
【1】変数定義
{% set 変数名 = 変数の値 %} # or {% set 変数名 %} 変数の値 {% endset %}
【2】変数参照
{{ 変数名 }}
【3】変数チェック
1)未定義かどうか
# if <変数> is defined {% if tabel_names is defined %}
2)Noneかどうか
# if <変数> is none {% if tabel_names is none %}
使用上の注意
* None じゃだめ (小文字で none )
3)文字列かどうか
# if <変数> is string {% if tabel_names is string %}
使用上の注意
* str じゃだめ
4)要素かどうか
* 以下が参考になる
https://stackoverflow.com/questions/11947325/how-to-test-for-a-list-in-jinja2
# if <変数> is iterable and <変数> is not string and <変数> is not mapping {% if tabel_names is iterable and tabel_names is not string and tabel_names is not mapping %}
補足:リスト限定の場合 (タプルは不可)
# if <変数>.__class__.__name__ == 'list' {% if tabel_names.__class__.__name__ == 'list' %}
関連記事
Jinja2 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/10/19/000848
Jinja2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/10/18/001757
Jinja2 ~ フィルタ ~
https://dk521123.hatenablog.com/entry/2024/10/20/002622
Jinja2 ~ Macro ~
https://dk521123.hatenablog.com/entry/2023/11/28/235951
Jinja2 ~ 条件分岐 ~
https://dk521123.hatenablog.com/entry/2025/04/06/001255
Jinja2 ~ do文 ~
https://dk521123.hatenablog.com/entry/2025/04/03/221326
Jinja2 ~ Whitespace Control ~
https://dk521123.hatenablog.com/entry/2024/10/29/151203
dbt ~ 条件分岐 ~
https://dk521123.hatenablog.com/entry/2024/09/11/003301
Flask ~ jinja2 ~
https://dk521123.hatenablog.com/entry/2018/09/22/142348
標準テンプレートエンジン
https://dk521123.hatenablog.com/entry/2020/01/07/212138