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