Django模板語言 Tags使用詳解
阿新 • • 發佈:2020-01-09
Tags
# 普通for迴圈 <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% endfor %} </ul>
for迴圈可用的一些引數:
Variable | Description |
---|---|
forloop.counter | 當前迴圈的索引值(從1開始) |
forloop.counter0 | 當前迴圈的索引值(從0開始) |
forloop.revcounter | 當前迴圈的倒序索引值(從1開始) |
forloop.revcounter0 | 當前迴圈的倒序索引值(從0開始) |
forloop.first | 當前迴圈是不是第一次迴圈(布林值) |
forloop.last | 當前迴圈是不是最後一次迴圈(布林值) |
forloop.parentloop | 本層迴圈的外層迴圈 |
for ... empty
# 如果user_list 裡面元素為0個的時候執行 empty <ul> {% for user in user_list %} <li>{{ user.name }}</li> {% empty %} <li>空空如也</li> {% endfor %} </ul>
if判斷
# if,elif和else {% if user_list %} 使用者人數:{{ user_list|length }} {% elif black_list %} 黑名單數:{{ black_list|length }} {% else %} 沒有使用者 {% endif %}
# 當然也可以只有if和else {% if user_list|length > 5 %} 七座豪華SUV {% else %} 黃包車 {% endif %} # if語句支援 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判斷。
with
# 定義一箇中間變數,多用於給一個複雜的變數起別名。 # 注意等號左右不要加空格。 {% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %} # 或 {% with business.employees.count as total %} {{ total }} employee{{ total|pluralize }} {% endwith %}
csrf_token
這個標籤用於跨站請求偽造保護。
在頁面的form表單裡面寫上{% csrf_token %}
注意事項
Django的模板語言不支援連續判斷,即不支援以下寫法:
{% if a > b > c %} ... {% endif %}
Django的模板語言中屬性的優先順序大於方法
def xx(request): d = {"a": 1,"b": 2,"c": 3,"items": "100"} return render(request,"xx.html",{"data": d})
如上,我們在使用render方法渲染一個頁面的時候,傳的字典d有一個key是items並且還有預設的 d.items() 方法,此時在模板語言中:
{{ data.items }}
預設會取d的items key的值。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。