if/else
{% if %}
<p>內容</P>
{% endif %}
{% else %}是可選標簽
{% if %}
<p>內容</P>
{% else %}
<p>內容</p>
{% endif %}
'真值'
False:空元組 空字典 空字符串 0 None False
for
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>
加入reserved,列表會被反向迭代輸出
<ul>
{% for athlete in athlete_list reserved %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>
for語句也可以嵌套使用
<ul>
{% for athlete in athlete_list reserved %}
<h>{{ athlete.name }}</h>
<ul>
{% for sport in athlete.sports_played %}
<li>{{ sport }}</li>
{% endfor %}
</ul>
{% endfor %}
</ul>
Django不支持退出循環操作。 如果我們想退出循環,可以改變正在迭代的變量,讓其僅僅包含需要迭代的項
目。 同理,Django也不支持continue語句,我們無法讓當前迭代操作跳回到循環頭部。
forloop
在每個`` {% for %}``循環里有一個稱為`` forloop`` 的模板變量。這個變量有一些提示循環進度信息的屬性。forloop.counter 總是一個表示當前循環的執行次數的整數計數器。 這個計數器是從1開始的,所以在第一次循環時 forloop.counter 將會被設置為1。
{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}
forloop.counter0 類似於 forloop.counter ,但是它是從0計數的。 第一次執行循環時這個變量會被設置為0。
forloop.revcounter 是表示循環中剩余項的整型變量。 在循環初次執行時 forloop.revcounter 將被設置為序列中項的總數。 最后一次循環執行中,這個變量將被置1。
forloop.revcounter0 類似於 forloop.revcounter ,但它以0做為結束索引。 在第一次執行循環時,該變量會被置為序列的項的個數減1。
forloop.first 是一個布爾值,如果該迭代是第一次執行,那么它被置為````
forloop.last 是一個布爾值;在最后一次執行循環時被置為True。
ifequal/ifnotequal
{% ifequal %}標簽比較兩個值,當他們相等時,顯示在 {% ifequal %}和 {% endifequal %}之中所有的值。
{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %}
{% if %}類似, {% ifequal %}支持可選的 {% else%}標簽
{% ifequal section 'sitenews' %}
<h1>Site News</h1>
{% else %}
<h1>No News Here</h1>
{% endifequal %}
注釋
{# This is a comment #}
過濾器
{{ name|lower }}:將name裝換成小寫
{{ my_list|first|upper }}:將my_list的第一個字母大寫
{{ bio|truncatewords:"30" }}:取bio的前30個字符串