亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

django 創(chuàng)建過濾器的實(shí)例詳解

 更新時(shí)間:2017年08月14日 10:48:22   投稿:lqh  
這篇文章主要介紹了django 創(chuàng)建過濾器的實(shí)例詳解的相關(guān)資料,主要說明django 創(chuàng)建過濾器來統(tǒng)一處理字符串,需要的朋友可以參考下

django 創(chuàng)建過濾器

一、需求來源:

假如有一個(gè)模板文件有一個(gè)字符串變量,這個(gè)字符串變量中不能有任何的空格,而恰恰這個(gè)模板被很多個(gè)視圖函數(shù)多調(diào)用,那么你每次在視圖函數(shù)中穿這個(gè)字符串變量的時(shí)候,都要進(jìn)行字符串的處理,這相對來說是比較麻煩的,django提供了一種叫做過濾器的方式,可以在模板中進(jìn)行統(tǒng)一處理。

二、自定義模板庫準(zhǔn)備工作:

創(chuàng)建一個(gè)模板庫分兩步走:

第一,決定模板庫應(yīng)該放在哪里。你可以單獨(dú)通過manage.py startapp創(chuàng)建一個(gè)app專門用來存放自定義的模板庫;也可以放在項(xiàng)目中的任何一個(gè)app下面。這里推薦第一種方式,因?yàn)榈谝环N方式寫完后,可以移植到其他項(xiàng)目中使用。不用重復(fù)編寫。但是,無論你采用哪種方式,你都要把存放你模板庫的app添加到settings.py的INSTALLED_APPS中!?。?/strong>

第二,在以上你選擇的包下,創(chuàng)建一個(gè)名叫templatetags目錄,這個(gè)目錄應(yīng)當(dāng)和models.py和views.py處于同一層次。然后在templatetags中創(chuàng)建兩個(gè)空文件:一個(gè)是__init__.py表示這不是一個(gè)普通的文件夾,這是一個(gè)Python代碼包,另外一個(gè)是你用來存放模板庫的文件(比如:my_template.py)。然后在你需要用到這個(gè)庫文件的模板文件中,使用{% load my_template.py %}進(jìn)行導(dǎo)入,重要的事情再說一遍,你必須把這個(gè)my_template.py所處的app添加到settings.py的INSTALLED_APPS中才有用。

三、創(chuàng)建自定義過濾器:

過濾器實(shí)際上就是一個(gè)帶有一個(gè)或者兩個(gè)參數(shù)的python函數(shù):

  • 需要被過濾的變量
  • 傳遞進(jìn)來的值,該值可以為空

例如我們創(chuàng)建一個(gè)將變量的所有空格替換成某個(gè)值的過濾器:

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)

那么你在使用的時(shí)候,只要在模板中使用一下代碼進(jìn)行使用:

{{ variable|removespace:"a" }}

那么variable這個(gè)變量中的所有空格都會被替換成a。

以上就是django 創(chuàng)建過濾器的實(shí)例,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論