1.全部的标签都是在{%%}
之间
2.if标签you闭合标签.就是{% endif %}
.
3.if标签的判断运算符,就跟python中的判断运算符是同样的.==、!=、<、<=、>、>=、in、not in、is、is not
等判断运算符
4.还可使用elif
和else
javascript
for...in...
标签:for...in...
相似于Python
中的for...in...
。能够遍历列表、元组、字符串、字典等一切能够遍历的对象。示例代码以下:html
{% for person in persons %} <p>{{ person.name }}</p> {% endfor %}
若是想要反向遍历,那么在遍历的时候就加上一个reversed
。示例代码以下:java
{% for person in persons reversed %} <p>{{ person.name }}</p> {% endfor %}
遍历字典的时候,须要使用items
、keys
和values
等方法。在DTL
中,执行一个方法不能使用圆括号的形式。遍历字典示例代码以下:python
{% for key,value in person.items %} <p>key:{{ key }}</p> <p>value:{{ value }}</p> {% endfor %}
在for
循环中,DTL
提供了一些变量可供使用。这些变量以下:ios
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中有很大的不一样,必定要记清楚! web
for...in...empty
标签:这个标签使用跟for...in...
是同样的,只不过是在遍历的对象若是没有元素的状况下,会执行empty
中的内容。示例代码以下:django
{% for person in persons %} <li>{{ person }}</li> {% empty %} 暂时尚未任何人 {% endfor %}
1.在模板中,想要定义变量,能够经过with
语句来实现.
2.with
语句有两种使用方式,第一种是with xxx=xxx
的形式,第二种是with xx as xx
的形式.
3.定义的变量只能在with语句块中使用,在with语句块使用是取不到这个变量的
示例代码以下:api
{% with zs=persons.0%} <p>{{ zs }}</p> <p>{{ zs }}</p> {% endwith %} 下面这个由于超过了with语句块,所以不能使用 <p>{{ zs }}</p> {% with persons.0 as zs %} <p>{{ zs }}</p> {% endwith %}
url
标签:在模版中,咱们常常要写一些url
,好比某个a
标签中须要定义href
属性。固然若是经过硬编码的方式直接将这个url
写死在里面也是能够的。可是这样对于之后项目维护可能不是一件好事。所以建议使用这种反转的方式来实现,相似于django
中的reverse
同样。示例代码以下:markdown
<a href="{% url 'book:list' %}">图书列表页面</a>
若是url
反转的时候须要传递参数,那么能够在后面传递。可是参数分位置参数和关键字参数。位置参数和关键字参数不能同时使用。示例代码以下:ide
# path部分 path('detail/<book_id>/',views.book_detail,name='detail') # url反转,使用位置参数 <a href="{% url 'book:detail' 1 %}">图书详情页面</a> # url反转,使用关键字参数 <a href="{% url 'book:detail' book_id=1 %}">图书详情页面</a>
若是想要在使用url
标签反转的时候要传递查询字符串的参数,那么必需要手动在在后面添加。示例代码以下:
<a href="{% url 'book:detail' book_id=1 %}?page=1">图书详情页面</a>
若是须要传递多个参数,那么经过空格的方式进行分隔。示例代码以下:
<a href="{% url 'book:detail' book_id=1 page=2 %}">图书详情页面</a>
<
转义成<
等.autoescape
标签来关掉自动转义.示例代码以下:{% autoescape off %} {% info %} {% endautoescape%}
verbatim
标签:默认在DTL
模板中是会去解析那些特殊字符的.好比{{
,{%
和%}
等.若是你在某个代码片断中不想使用DTL
的解析引擎,那么你能够把这个代码片断放在verbatim
标签中.示例代码以下:
{% verbatim %} {{ hello }} {% endverbatim %}