本文實例講述了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.filterdef mod(num): '''判斷num是否為偶數''' return num%2 == 0@register.filterdef 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程序設計有所幫助。
新聞熱點
疑難解答