Django自定義模板過濾器

2021-09-25 09:12:51 字數 1469 閱讀 4199

比如,現在通過資料採集,得到了全國3億人的生日,然後要在前端進行展示,但是,由於資料**多處,導致生日的格式各種各樣,比如 1983-02-03 ,2023年4月16日,這個時候如果資料採集過程當中沒有進行資料過濾,就需要有一種功能針對每一條資料的日期進行修改。這時候就需要用到過濾器了。

在templatetags當中的檔案裡面編寫過濾器

在前端使用過濾器

settimetages和python檔名對應,settime和過濾器python檔案下的@register.filter(name="settime")中的名字對應。

接收引數,按照年齡返回對應的年齡段。

settimetages.py檔案內容如下: 

import re

from django import template #引入django的template

register = template.library() #呼叫template下的方法

@register.filter(name="settime") #給自定義過濾器起的名字,前端使用過濾器的名字為settime

def set_time(value): #編寫方法

""":param value: 接收前台傳過來的引數,就是settime之前的資料

:return:

"""res = re.findall(r"(\d).*?(\d).*?(\d)",value)

result = 2019 - int(res[0][0])

lst = [[12,"少年"],[22,"青年"],[35,"壯年"],[45,"中年"],[60,"老年"],[100,"太古"]]

for data in lst:

if result前端主要內容如下:

}  }

}  }

結果如下;

Django自定義過濾器

django中提供了很多的過濾器和標籤,具體可見django官網,例如 upper 化為大寫字母 lower 化為小寫字母 autoescape 自動轉義 block 模板繼承 csrf token 防止跨站偽造請求 extends 模板繼承 filter 過濾器 等 內建的過濾器雖然好用,但是我們...

Django自定義過濾器

為什麼要自定義過濾器?django中雖然已經內建了很多過濾器,但是並不能滿足我們的日常開發,所以我們需要自定義過濾器。在一切配置好了之後,然後在article中新建乙個名為templatetags的package。注意 必須是乙個包,並且包的名字也必須為templatetags package和資料...

django 自定義過濾器

然後在extratags.py檔案中新增自定義的過濾器 from django import template register template.library register.filter name cut 過濾器在模板中使用時的name def mycut value,arg 把傳遞過來的引...