1. 程式人生 > 程式設計 >Python Django模板之模板過濾器與自定義模板過濾器示例

Python Django模板之模板過濾器與自定義模板過濾器示例

本文例項講述了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程式設計有所幫助。