DTL 模板标签

一、if模板标签:
1. 所有的标签都是在`{%%}`之间。
2. if标签有闭合标签。就是`{% endif %}`。
3. if标签的判断运算符,就跟python中的判断运算符是一样的。`==、!=、<、<=、>、>=、in、not in、is、is not`这些都可以使用。
4. 还可以使用`elif`以及`else`等标签。

 

 

二、for模板标签:


`for...in...`类似于`Python`中的`for...in...`。可以遍历列表、元组、字符串、字典等一切可以遍历的对象。示例代码如下:


{% for person in persons %}
<p>{{ person.name }}</p>
{% endfor %}
 

 

 

如果想要反向遍历,那么在遍历的时候就加上一个`reversed`。示例代码如下:


{% for person in persons reversed %}
<p>{{ person.name }}</p>
{% endfor %}

 

 

遍历字典的时候,需要使用`items`、`keys`和`values`等方法。在`DTL`中,执行一个方法不能使用圆括号的形式。遍历字典示例代码如下:


{% for key,value in person.items %}
<p>key:{{ key }}</p>
<p>value:{{ value }}</p>
{% endfor %}

 

 

在`for`循环中,`DTL`提供了一些变量可供使用。这些变量如下:

`forloop.counter`:当前循环的下标。以1作为起始值。
`forloop.counter0`:当前循环的下标。以0作为起始值。
`forloop.revcounter`:当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。
`forloop.revcounter0`:类似于forloop.revcounter。不同的是最后一个元素的下标是从0开始。
`forloop.first`:是否是第一次遍历。
`forloop.last`:是否是最后一次遍历。
`forloop.parentloop`:如果有多个循环嵌套,那么这个属性代表的是上一级的for循环。

 

模板中的for...in...没有continue和break语句,这一点和Python中有很大的不同,一定要记清楚!

 

`for...in...empty`标签:
这个标签使用跟`for...in...`是一样的,只不过是在遍历的对象如果没有元素的情况下,会执行`empty`中的内容。示例代码如下:


{% for person in persons %}
<li>{{ person }}</li>
{% empty %}
暂时还没有任何人
{% endfor %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值