Python Django模板之模板過濾器與自定義模板過濾器示例
阿新 • • 發佈:2020-01-09
本文例項講述了Python Django模板之模板過濾器與自定義模板過濾器。分享給大家供大家參考,具體如下:
模板過濾器
過濾器用於對模板變數進行操作。
date:改變日期的顯示格式。
length:求長度。字串,列表。
default:設定模板變數的預設值。
格式:模板變數|過濾器:引數
自定義過濾器。
自定義的過濾器函式,至少有一個引數,最多兩個
例如:
{{ book.btitle|length }} # 返回字串或列表的長度 {{ book.bpub_date|date:'Y年-m月-d日' }} # 格式化日期格式 {{ content|default:'hello' }} # 為不存在的變數指定預設值。
自定義模板過濾器
應用名/templatetags/filters.py(自定義過濾器函式,templatetags檔名固定):
# 自定義過濾器 # 過濾器其實就是python函式 from django.template import Library # 建立一個Library類的物件 register = Library() # 自定義的過濾器函式,至少有一個引數,最多兩個。(第一個引數就是要過濾的模板變數) @register.filter def mod(num): '''判斷num是否為偶數''' return num%2 == 0 @register.filter def mod_val(num,val): '''判斷num是否能被val整除''' return num%val == 0
demo.html(模板檔案,使用自定義過濾器):
<!DOCTYPE html> <html lang="en"> {% load filters %} {# load標籤載入自定義過濾器的py檔案。和templatetags/filters.py 的py檔名一致。 #} <head> <meta charset="UTF-8"> <title>模板過濾器</title> </head> <body> <ul> {# {% if book.id|mod %}#} {# 使用自定義的過濾器。需要先load自定義過濾器的py檔案 #} {% if book.id|mod_val:3 %} {# 使用自定義的過濾器 #} 。。。 {% else %} 。。。 {% endif %} </ul> </body> </html>
希望本文所述對大家基於Django框架的Python程式設計有所幫助。