1,引言
在Django框架的模板機制中,廣泛使用了模板標籤。模板標籤提供了一些渲染過程中Django進行頁面處理的邏輯。
模板的通用形式爲{% 模板標籤名稱%}, 模板標籤比模板變量更爲複雜,模板標籤的本質也是函數,標籤名一般即爲函數名。這些標籤的主要作用包括載入代碼渲染模板或對傳遞過來的參數進行一定的邏輯判斷或計算後返回。
Django的模板標籤(tag)根據其作用可分2類:
simple_tag 簡單標籤 : 處理數據,返回一個字符串或者給context設置或添加變量。
inclusion_tag (包含標籤) : 處理數據,返回一個渲染過的模板。
Django框架提供了很多系統模板標籤,同時也給開發人員提供了自定義模板標籤的方式。
2, 系統模板標籤
常見的系統模板標籤一般都在Django.template..defaulttags包中,具體有以下標籤:
2.1 autoescape
該標籤用來控制當前的自動轉義行爲。該標籤帶有一個參數,可以選擇 on 或者off 兩個值用來決定是否在標籤所在區域是否對相關特殊字符實行自動轉義。該標籤與 endautoescape 標籤配對形成一個封閉區域。
當這個標籤生效時,包含 HTML 的變量先轉義再輸出(在此之前先應用過濾器)。這個效果與在各個變量上應用escape 過濾器的效果近似。
唯一的例外是相關變量被標記爲安全模式,這種安全模式可能是變量關聯的生成代碼影響,也可能是變量通過safe 或escape 過濾器標記爲無需轉義的安全內容。