1. 程式人生 > >Django DTL模板語法中的循環的筆記

Django DTL模板語法中的循環的筆記

如果 對象 第一次 語句 values loop for循環 開始 evc

for...in...筆記:

for...in...標簽:

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

遍歷字典的時候,需要使用itemskeysvalues等方法。在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 %}

Django DTL模板語法中的循環的筆記