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 %}