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
,具有相同的值: p>
实例
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
运算符的计算结果为 true:
我们将通过使用 {% with %}
标签来演示这一点,它允许我们在模板中创建变量:
实例
{% with var1=x var2=x %}
{% if var1 == var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
运行实例 »
is not
检查两个对象是否不相同。