Django框架相关标签逻辑操作

for循环

{% for person in person_list %}
    <p>{{ person.name }}</p>  <!--凡是变量都要用两个大括号括起来-->
{% endfor %}

#遍历字典
{% for key,val in dic.items %}
    <p>{{ key }}:{{ val }}</p>
{% endfor %}

#循环序号可以通过{{forloop}}显示,必须在循环内部用
forloop.counter            当前循环的索引值(从1开始),forloop是循环器,通过点来使用功能
forloop.counter0           当前循环的索引值(从0开始)
forloop.revcounter         当前循环的倒序索引值(从1开始)
forloop.revcounter0        当前循环的倒序索引值(从0开始)
forloop.first              当前循环是不是第一次循环(布尔值)
forloop.last               当前循环是不是最后一次循环(布尔值)
forloop.parentloop         本层循环的外层循环的对象,再通过上面的几个属性来显示(获取)外层循环的计数等
#示例:
    {% for k,v in d1.items %}
    <li>{{ forloop.counter }}-- {{ forloop.parentloop.counter }} === {{ k }} -- {{ v }}</li>
    {% endfor %}

#*******************************************
#for 标签带有一个可选的{% empty %} 从句,以便在给出的数据是空的或者没有被找到时,就执行empty从句。
    {% for person in person_list %}
        <p>{{ person.name }}</p>
    {% empty %}
        <p>sorry,no person here</p>
    {% endfor %}

if判断

#{% if %}会对一个变量求值,如果它的值是“True”(存在、不为空、且不是boolean类型的false值),满足那个条件就执行那个条件
    {% if num > 100 or num < 0 %}
        <p>无效</p>  <!--不满足条件,不会生成这个标签-->
    {% elif num > 80 and num < 100 %}
        <p>优秀</p>
    {% else %}  <!--也是在if标签结构里面的-->
        <p>凑活吧</p>
    {% endif %}
#if语句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判断,注意条件两边都有空格。

with

#使用一个简单地名字缓存一个复杂的变量,多用于给一个复杂的变量起别名
#方式一:
	{% with total=business.employees.count %}
    {{ total }} <!--只能在with语句体内用-->
	{% endwith %}
#方式er:
	{% with business.employees.count as total %}
    {{ total }}
	{% endwith %}
原文地址:https://www.cnblogs.com/luckinlee/p/11622250.html