1. 程式人生 > 程式設計 >Django模板語言 Tags使用詳解

Django模板語言 Tags使用詳解

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的值。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。