Python入門 Djangoの使い方(その9)テンプレートの制御文(条件分岐)
はじめに
不定期連載のPython入門第23回目です。今回もPythonのWebフレームワーク「Django」を使っていきましょう。DjangoはPythonのWebフレームワークの代表格です。今回はDjangoのテンプレート内での記述について学習していきます。それでは早速はじめましょう。
今回の内容:
テンプレートでのif文の記述。
前提条件:
- Pythonバージョン:Python3
- Djangoバージョン:Django1.10.5
- 実行環境:Windows8
- ツール:VisualStudioCommunity2015
Djangoテンプレート内でのif文サンプル
まずはシンプルな「if」文。
{% if val %} val is not null. {% endif %}
→変数「val」がViewから渡されている場合「val is not null.」が表示され、渡されていない場合何も表示されません。
次に「if not」文でNullチェック。
{% if not val %} val1 is null. {% endif %}
→変数「val」がViewから渡されている場合何も表示されず、渡されていない場合「val is null」が表示されます。
続いて等しいかを判定する「ifequal」文。
{% ifequal val 'true' %} val is true. {% endifequal %}
→変数「val」がViewから渡されており値が「true」であれば「val is true」が表示されます。
条件を満たさない場合の処理も記述する「if-else」文。
{% ifequal val 'true' %} val is true. {% else %} val is not true. {% endifequal %}
→変数「val」がViewから渡されており値が「true」であれば「val is true」が表示され、それ以外のとき「val is not true.」が表示されます。
さらに条件分岐をつなげる「if-elif-else」文。
{% if val == 1 %} val is 1. {% elif val == 2 %} val is 2. {% else %} val id neither 1 nor 2. {% endif %}
→変数「val」がViewから渡されており値が「1」であれば「val is 1.」が表示され、値が「2」であれば「val is 2.」が表示され、それ以外のとき「val id neither 1 nor 2.」が表示されます。
AND条件を指定することもできます。
{% if param1 == 'こんにちは' and param2 == 'こんばんは' %} こんにちはこんばんは! {% endif %}
→変数「param1」が「こんにちは」で且つ、「param2」が「こんばんは」のとき、「こんにちはこんばんは!」が表示されます。
OR条件を指定することもできます。
{% if param1 == 'おはようございます' or param2 == 'こんばんは' %} こんばんは! {% endif %}
→変数「param1」が「おはようございます」または、「param2」が「こんばんは」のとき、「こんばんは!」が表示されます。
まとめ
今回はテンプレート内での条件分岐の制御構文を学習しました。DjangoではSwitch文があるのか定かではありませんが、あまり調べても見つからないので、あったとしても一般的ではないでしょう。PythonにはSwitch文がありませんので、Djangoでも恐らく同様なのだと考えられます。
ということで、if文の書き方を覚えておくようにしましょう。