判断:
标签:{% if %}、{% else %}
{% if %}用于判断表达式中的条件是否为真,即是否存在,不为空,不是假值,模板系统显示{% if %}{% endif %}之间的内容。
例如:
{% if 2>1 %}
<h1>如果2大于1,则本段文字显示<h1>
{% endif %}
结果显而易见:
如果2大于1,则本段文字显示
当然,同其他语言一样,也拥有{% else %}标签,当然也可以多个使用,是可选的
{% if 2>1 %}
<h1>如果2大于1,则本段文字显示</h1>
{% else %}
<h1>2小于1,则本段文字将显示</h1>
{% endif %}
结果也是:如果2大于1,则本段文字显示
并且,同python一样,有{% elif %}标签
{%if 1>2 %}
<p>1>2</p>
{% elif 2>3 %}
<p>2>3</p>
{% else %}
<p>1<2<3</p>
{% endif %}
结果:1<2<3
同时,{% if %}标签内支持and or not 测试多个变量,或者取变量额反值
{% if 2>3 and 2>1%}</p>2>3&&3>1</p>{% endif %} #当两个条件都满足时才为真
{% if 3>2 and 3>1%}<p>3>2&&3>1</p>{% endif %} #两个条件都为真,显示
{% if 3>2 or 1>2%}<p>3>2|1>2</p>{% endif %} #有一个条件为真便显示
a=False
{% if not a %}<p>a is False!</p>{% endif %} #a为FALSE显示
{% if 2>1 and not a%}<p>2>1&&Ture</p>{% endif %} #not可以和and or 使用
{% if 2>1 and 3>2 or 4<1%}<p>2>1&&3>2|4<1</p>{% endif %} #and的优先级比or高:(2>1 and 3>2)or 4<1
结果:
3>2&&3>1
3>2|1>2
a is False
2>1&&Ture
2>1&&3>2|4<1
Attention:if标签中使用括号是无效的语法
如果需要通过括号指明优先级,应使用嵌套的if标签
ifeqaul/ifnotequal:
{% ifequal %}用于比较两个值,在相等的时候显示一些内容.其参数只能是模板变量,字符串、整数和小数,并且可以用else标签
a=1
b=1
{% ifequal a b %}
<h1>a==b</h1>
{% endifequal %}
c='dcp'
{% ifequal c "dcp"%}
<p>I'm Dcp</p>
{% endequal %}