django 創(chuàng)建過(guò)濾器的實(shí)例詳解
django 創(chuàng)建過(guò)濾器
一、需求來(lái)源:
假如有一個(gè)模板文件有一個(gè)字符串變量,這個(gè)字符串變量中不能有任何的空格,而恰恰這個(gè)模板被很多個(gè)視圖函數(shù)多調(diào)用,那么你每次在視圖函數(shù)中穿這個(gè)字符串變量的時(shí)候,都要進(jìn)行字符串的處理,這相對(duì)來(lái)說(shuō)是比較麻煩的,django提供了一種叫做過(guò)濾器的方式,可以在模板中進(jìn)行統(tǒng)一處理。
二、自定義模板庫(kù)準(zhǔn)備工作:
創(chuàng)建一個(gè)模板庫(kù)分兩步走:
第一,決定模板庫(kù)應(yīng)該放在哪里。你可以單獨(dú)通過(guò)manage.py startapp創(chuàng)建一個(gè)app專門用來(lái)存放自定義的模板庫(kù);也可以放在項(xiàng)目中的任何一個(gè)app下面。這里推薦第一種方式,因?yàn)榈谝环N方式寫完后,可以移植到其他項(xiàng)目中使用。不用重復(fù)編寫。但是,無(wú)論你采用哪種方式,你都要把存放你模板庫(kù)的app添加到settings.py的INSTALLED_APPS中?。?!
第二,在以上你選擇的包下,創(chuàng)建一個(gè)名叫templatetags目錄,這個(gè)目錄應(yīng)當(dāng)和models.py和views.py處于同一層次。然后在templatetags中創(chuàng)建兩個(gè)空文件:一個(gè)是__init__.py表示這不是一個(gè)普通的文件夾,這是一個(gè)Python代碼包,另外一個(gè)是你用來(lái)存放模板庫(kù)的文件(比如:my_template.py)。然后在你需要用到這個(gè)庫(kù)文件的模板文件中,使用{% load my_template.py %}進(jìn)行導(dǎo)入,重要的事情再說(shuō)一遍,你必須把這個(gè)my_template.py所處的app添加到settings.py的INSTALLED_APPS中才有用。
三、創(chuàng)建自定義過(guò)濾器:
過(guò)濾器實(shí)際上就是一個(gè)帶有一個(gè)或者兩個(gè)參數(shù)的python函數(shù):
- 需要被過(guò)濾的變量
- 傳遞進(jìn)來(lái)的值,該值可以為空
例如我們創(chuàng)建一個(gè)將變量的所有空格替換成某個(gè)值的過(guò)濾器:
def removespace(value,arg):
return value.replace(' ',arg)
然后注冊(cè)近模板中,使用以下代碼進(jìn)行注冊(cè):
from django import template
register = template.Library()
@register.filter
def removespace(value,arg):
return value.replace('',arg)
那么你在使用的時(shí)候,只要在模板中使用一下代碼進(jìn)行使用:
{{ variable|removespace:"a" }}
那么variable這個(gè)變量中的所有空格都會(huì)被替換成a。
以上就是django 創(chuàng)建過(guò)濾器的實(shí)例,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- 在Django框架中自定義模板過(guò)濾器的方法
- Django框架模板語(yǔ)言實(shí)例小結(jié)【變量,標(biāo)簽,過(guò)濾器,繼承,html轉(zhuǎn)義】
- Django自定義模板過(guò)濾器和標(biāo)簽的實(shí)現(xiàn)方法
- 詳解Django中的過(guò)濾器
- 深入理解Django的自定義過(guò)濾器
- 詳解django中自定義標(biāo)簽和過(guò)濾器
- Django自定義過(guò)濾器定義與用法示例
- Django 過(guò)濾器匯總及自定義過(guò)濾器使用詳解
- django 自定義過(guò)濾器的實(shí)現(xiàn)
- django 自定義過(guò)濾器(filter)處理較為復(fù)雜的變量方法
- Falsk 與 Django 過(guò)濾器的使用與區(qū)別詳解
- Python Django模板之模板過(guò)濾器與自定義模板過(guò)濾器示例
相關(guān)文章
python實(shí)現(xiàn)愛(ài)奇藝登陸密碼RSA加密的方法示例詳解
這篇文章主要介紹了python實(shí)現(xiàn)愛(ài)奇藝登陸的密碼RSA加密的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Python構(gòu)建網(wǎng)頁(yè)爬蟲(chóng)原理分析
這篇文章主要給大家講解了構(gòu)建網(wǎng)頁(yè)爬蟲(chóng)的技術(shù)原理以及實(shí)現(xiàn)的邏輯關(guān)系,有興趣的朋友閱讀下吧。2017-12-12
詳解python使用Nginx和uWSGI來(lái)運(yùn)行Python應(yīng)用
這篇文章主要介紹了詳解python使用Nginx和uWSGI來(lái)運(yùn)行Python應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Python利用re模塊實(shí)現(xiàn)簡(jiǎn)易分詞(tokenization)
分詞(tokenization)任務(wù)是Python字符串處理中最為常見(jiàn)任務(wù)了。本文將利用re模塊實(shí)現(xiàn)簡(jiǎn)易tokenizer,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-04-04
Python入門教程(二十九)Python的RegEx正則表達(dá)式
這篇文章主要介紹了Python入門教程(二十九)Python的RegEx,RegEx 或正則表達(dá)式是形成搜索模式的字符序列。RegEx 可用于檢查字符串是否包含指定的搜索模式,需要的朋友可以參考下2023-04-04
python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
Django實(shí)現(xiàn)auth模塊下的登錄注冊(cè)與注銷功能
這篇文章主要介紹了Django實(shí)現(xiàn)auth模塊下的登錄注冊(cè)與注銷功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
python3結(jié)合openpyxl庫(kù)實(shí)現(xiàn)excel操作的實(shí)例代碼
這篇文章主要介紹了python3結(jié)合openpyxl庫(kù)實(shí)現(xiàn)excel操作的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09

