18.Django常用模板標籤及過濾器
阿新 • • 發佈:2019-02-03
一 模板的組成
- 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