Django if 标签
If 语句
一个 if
语句评估一个变量,如果值为真则执行一段代码块。
埃利夫
这 elif
关键字表示“如果先前的条件不成立,则尝试这个条件”。
例子
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% endif %}
运行示例 »
别的
这 else
关键字捕获先前条件未捕获的任何内容。
例子
{% if greeting == 1 %}
<h1>Hello</h1>
{% elif greeting == 2 %}
<h1>Welcome</h1>
{% else %}
<h1>Goodbye</h1>
{% endif %}
运行示例 »
运算符
上面的例子使用了 ==
运算符,用于检查变量是否等于某个值,但是您还可以使用许多其他运算符,或者,如果您只想检查变量是否不为空,您甚至可以删除该运算符:
==
等于。
!=
不等于。
<
小于。
<=
小于或等于。
>
大于。
>=
大于或等于。
和
检查多个条件是否为真。
或者
检查其中一个条件是否为真。
和/或
结合 and
和or
.
括号内不允许 if
Django 中的语句,因此当你组合and
和or
运算符,重要的是要知道括号是为and
但不是or
.
这意味着上面的例子被解释器读取如下:
{% if (greeting == 1 and day == "Friday") or greeting == 5 %}
在
检查对象中是否存在某个特定项。
不在
检查某个特定项目是否不存在于对象中。
是
检查两个对象是否相同。
此运算符不同于 ==
运算符,因为==
运算符检查两个对象的值,但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 %}
运行示例 »
不是
检查两个对象是否不同。