本文實(shí)例講述了Django自定義過濾器定義與用法。分享給大家供大家參考,具體如下:
一、自定義過濾器的介紹
前面我們就介紹過過濾器其實(shí)就是一個函數(shù),把要過來的字段傳遞到一個函數(shù)內(nèi),進(jìn)行加工處理,返回一個新的值展現(xiàn)在頁面中,在實(shí)際開發(fā)中系統(tǒng)自帶的過濾器有時候不能滿足我們的需求的時候就要自定義
二、Django中自定義過濾器有兩種方式
1、在組件(App)中的templatetags創(chuàng)建一個單獨(dú)的py文件
2、單獨(dú)創(chuàng)建一個組件(App)用來存放項(xiàng)目中所有的自定義過濾器
三、在項(xiàng)目中的組件中創(chuàng)建自定義過濾器
1、只能在安裝的組件(App)中
2、只能在組件(App)下的templatetags包內(nèi)創(chuàng)建
3、必須使用修飾器@register.filter4、定義一個方法,傳遞值進(jìn)去進(jìn)行處理,返回新的值
5、創(chuàng)建自定義過濾器
①. 在templatetags包下創(chuàng)建一個poll.py的文件
from django import templateregister = template.Library()@register.filterdef mycut(value,args): return value.replace(args,"")
6、 使用自定義過濾器
①. 先引入文件{% load poll %}
②. 使用
{% load poll %}<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <p>{{ msg | mycut:' '}}</p></body></html>四、可以自定義一個組件(App)[由于不需要太多的文件,就手動創(chuàng)建一個]
1、手動創(chuàng)建一個包
2、在包中創(chuàng)建一個templatetags的包
3、將創(chuàng)建的這個包在settings.py中注入
4、在templatetags中創(chuàng)建文件及函數(shù)
5、過濾器的使用(跟上面一樣的)
五、補(bǔ)充說明
如果是對字符串操作的一般都會引入@stringfilter修飾符
from django import templatefrom django.template.defaultfilters import stringfilterregister = template.Library()@register.filterdef mycut(value,args): return value.replace(args,"")@register.filter@stringfilterdef mylower(value): return value.lower()
希望本文所述對大家Django框架的Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選