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