If Statement
ステートメントif
は変数を評価し、値がtrueの場合はコードブロックを実行します。
例
{% if greeting == 1 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
Elif
キーワードelif
は、「前の条件が真ではない場合は、この条件を使用してください」というものです。
例
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% endif %}
実行例(開発準備中) »
Else
キーワードelse
は、前述の条件で捕捉されないものを捕捉します。
例
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
実行例(開発準備中) »
Operators
上記の例では、==
変数が値と等しいかどうかを確認するために使用される演算子ですが、他にも使用できる演算子がたくさんあります。また、変数が空でないかどうかを確認するだけの場合は、演算子を削除することもできます。
==
等しい。
例
{% if greeting == 2 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
!=
等しくない。
例
{% if greeting != 1 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
<
よりも少ない。
例
{% if greeting < 3 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
<=
以下です。
例
{% if greeting <= 3 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
>
より大きい。
例
{% if greeting > 1 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
>=
以上です。
例
{% if greeting >= 1 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
and
複数の条件がtrueかどうかを確認します。
例
{% if greeting == 1 and day == "Friday" %}
<h1>Hello Weekend!</h1>
{% endif %}
実行例(開発準備中) »
or
条件の1つがtrueかどうかを確認します。
例
{% if greeting == 1 or greeting == 5 %}
<h1>Hello</h1>
{% endif %}
実行例(開発準備中) »
and/or
and
とor
を組み合わせます。
例
{% if greeting == 1 and day == "Friday" or greeting == 5 %}
実行例(開発準備中) »
Djangoでは if 文に括弧は使用できません、andとor演算子を組み合わせ るときは、and には括弧が追加されるが or には追加されないことを知っておくこ とが重要です。
上記の例が処理される場合は次のように読み取られることを意味します。
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
in
オブジェクトに特定のアイテムが存在するかどうかを確認します。
例
{% if 'Banana' in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
実行例(開発準備中) »
not in
特定のアイテムがオブジェクトに存在しないかどうかを確認すること。
例
{% if 'Banana' not in fruits %}
<h1>Hello</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
実行例(開発準備中) »
is
2つのオブジェクトが同じかどうかを確認します。
この演算子は、==
演算子、==
演算子は2つのオブジェクトの値をチェックしますが、is
演算子は、2つのオブジェクトの同一性をチェックします。
ビューには、同じ値を持つ2つのオブジェクトx
とy
があります。
例
views.py
:
from django.http import HttpResponse
from django.template import loader
def testing(request):
template = loader.get_template('template.html')
context = {
'x': ['Apple', 'Banana', 'Cherry'],
'y': ['Apple', 'Banana', 'Cherry'],
}
return HttpResponse(template.render(context, request))
2つのオブジェクトは同じ値を持っていますが、同じオブジェクトですか?
例
{% if x is y %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
実行例(開発準備中) »
代わりに==
演算子を使用して同じ例を試してみましょう。
例
{% if x == y %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
実行例(開発準備中) »
2つのオブジェクトが同じである可能性はありますか?同じオブジェクトを指す2つのオブジェクトがある場合、is
演算子はtrueに評価されます。
これを、テンプレート内に変数を作成できる{% with %}
タグを使用して示します。
例
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
実行例(開発準備中) »
is not
2つのオブジェクトが同じでないかどうかを確認します。
例
{% if x is not y %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
実行例(開発準備中) »