1. 程式人生 > >18.Django常用模板標籤及過濾器

18.Django常用模板標籤及過濾器

一 模板的組成

  • HTML程式碼+邏輯控制程式碼

二 邏輯控制程式碼的組成

1 變數(使用雙大括號來引用變數)

 {{ var_name }}

2 標籤(tag)的使用(使用大括號和百分號組成來表示使用tag)

{% load staticfiles %}

3 過濾器(filter)的使用

{{ ship_date|date:"Fj,Y"}}
  • ship_date變數傳給data過濾器,data過濾器通過使用Fj,Y這幾個引數來格式化資料。|代表類似Unix命令中的管道操作。

三 常用標籤(tag)

1 {% if %}

  • 可以使用and,or,not來組織你的邏輯,但不允許and和or同時出現的條件語句中。新版本已經支援{% elif %}這樣的用法

2 {% ifequal %}{% ifnotequal %}

  • 比較是否相等,只限於簡單的型別,比如字串、整數、小數的比較,列表、字典、元組不支援。

3 {% for %}

  • 用來迴圈一個list,還可以使用reserved關鍵字來進行倒序遍歷,一般可以用if語句來西先判斷一下列表是否為空,在進行遍歷;還可以使用empty關鍵字來進行為空時候的跳轉。

  • **for標籤中可以使用forloop

forloop.counter: 當前迴圈計數,從1開始
forloop.counter0: 當前迴圈計數,從0開始
forloop.recounter: 當前迴圈倒數計數,從列表長度開始
forloop.recounter0: 當前迴圈倒數計數,從列表長度減1開始,標準
forloop.first: bool值,判斷是不是迴圈的第一個元素
forloop.last: bool值,判斷是不是迴圈的最後一個元素
forloop.parentloop: 用在巢狀迴圈中,得到parent迴圈的引用,然後可以使用以上引數

4 {% cycle %}

  • 在迴圈是輪流使用給定的字串列表中的值。

5 註釋

  • {# #}單行註釋,{% comment %}多行註釋

6 {% csrf_token %}

  • 生成csrf_token的標籤,用於防止跨站攻擊驗證

7 {% debug %}

  • 呼叫除錯資訊

8 {% filter %}

  • 將filter標籤標籤圈定的執行過濾器操作

9 {% autoescape %}

  • 自動轉義設定
{{% autoescape off %}}
{{ value}}
{{% endautoescape %}}

10 {% firstof %}

  • 輸出第一個值不等於False的變數

11 {% load %}

  • 載入標籤庫

12 {% now %}

  • 獲取當前的時間

13 {% spaceless %}

  • 移除空格

14 {% url %}

  • 引入路由配置的地址

15 {% verbatim %}

  • 禁止render

16 {% with %}

  • 用更簡單的變數名快取複製的變數名

17 ….

四 常用過濾器(filter)

  • 經常使用的是通過變數來呼叫過濾器)

1 add

  • 給變數加上相應的值
 {{ value|add:"2" }}     # 空格不要亂加

2 addslashes

  • 給變數中的引號(雙引號、單引號)前加上斜線

3 capfirst

  • 首字母大寫

4 cut

  • 從字串中移除指定的字元
 {{ value|cut:" " }}

5 date

  • 格式化日期字串

6 default

  • 如果值是False,就替換成設定的預設值,否則就使用本來的值(空字串”“、空列表[]、空字典{}、空元組()、None在python裡也是False)

7 default_if_none

  • 如果只是None,就替換成設定的預設值,否則就使用本來的值

8 dictsort

  • 按照設定的引數(key)對應的value對列表進行排序

9 dictsorted

  • 和上面恰好相反

10 divisbleby

  • 是否能夠被某個數字整除,是的話返回True,否則返回False

11 escape

  • 對字串進行轉義。django預設自動轉義,如果我們關閉了自動轉義,這可使用escape過濾器來轉義。

12 escapejs

  • 替換value中的某些字元,以適應JAVASCRIPT和JSON格式

13 filesizeformat

  • 格式化檔案大小顯示

14 first

  • 返回列表中的第一個值

15 last

  • 返回列表中的最後一個值

16 floatformat

  • 格式化浮點數

17 length

  • 求字串或者列表的長度

18 length_is

  • 比較字串或者列表的長度

19 urlencode

  • 對URL進行編碼處理

20 upper\lower

  • 大寫\小寫

21 safe

  • 對某個變數關閉自動轉義
{{ value|safe }}

22 slice

  • 切片操作
{{ some_list|slice:":2" }}

23 time

  • 格式化時間

24 timesince

  • 格式化時間(e.g. “4 days,6 hours”)

25 truncatechars

  • 按照字元擷取字串
{{ value|truncatechars:5 }}

26 turncatewords

  • 按照單詞擷取字串(其實就是按照空格來擷取)

27 striptags

  • 過濾掉html標籤

28 …

五 文件

end