一个if
语句计算变量并在值为 true 时执行代码块。
这个elif
关键字为"if the previous conditions were not true, then try this condition"。
{% 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
运算符计算结果为 true:
我们将通过使用来演示这一点{% with %}
标签,它允许我们在模板中创建变量:
{% with var1=x var2=x %}
{% if var1 is var2 %}
<h1>YES</h1>
{% else %}
<h1>NO</h1>
{% endif %}
{% endwith %}
运行示例 »
检查两个对象是否不相同。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!