Django if 标签
if 语句
一个 if
语句评估一个变量,如果值是真,则执行代码块。
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 %}
运行示例 »
运算符
上面的示例使用了 ==
运算符,该运算符用于检查变量是否等于某个值,但可以使用许多其他运算符,或者如果只是要检查变量是否不为空,则可以省略运算符。
==
等于。
!=
不等于。
<
小于。
<=
小于或等于。
>
大于。
>=
大于或等于。
and
要检查是否有多个条件为真。
or
要检查是否有一个条件为真。
and/or
结合 and
和 or
。
在 Django 中的 if
语句中不允许使用括号,因此当您结合 and
和 or
运算符时,重要的是要知道括号是为 and
添加的,而不是为 or
添加的。
这意味着上面的示例被解释器这样解析
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
in
要检查某个项是否在一个对象中。
not in
要检查某个项是否不在一个对象中。
is
检查两个对象是否相同。
这个运算符与 ==
运算符不同,因为 ==
运算符检查两个对象的,而 is
运算符检查两个对象的标识。
在视图中,我们有两个对象,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))
这两个对象的值相同,但它们是同一个对象吗?
让我们尝试用 ==
运算符代替上面的示例
两个对象怎么会是同一个?好吧,如果您有两个对象指向同一个对象,那么 is
运算符将评估为真
我们将通过使用 {% with %}
标签来演示这一点,该标签允许我们在模板中创建变量
示例
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
运行示例 »
is not
要检查两个对象是否不同。