Python入門 Djangoの使い方(その9)テンプレートの制御文(条件分岐)


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文の書き方を覚えておくようにしましょう。

  • このエントリーをはてなブックマークに追加

PAGE TOP