django 建立過濾器的例項詳解

2022-10-04 20:57:12 字數 1142 閱讀 1170

django 建立過濾器

一、需求**:

假如有乙個模板檔案有乙個字串變數,這個字串變數中不能有任何的空格,而恰恰這個模板被很多個檢視函式多呼叫,那麼你每次在檢視函式中穿這個字串變數的時候,都要進行字串的處理,這www.cppcns.com相對來說是比較麻煩的,django提供了一種叫做過濾器的方式,可以在模板中進行統一處理。

二、自定義模板庫準備工作:

建立乙個模板庫分兩步走:

第一,決定模板庫應該放在哪alfcw裡。你可以單獨通過manage.py startapp建立乙個app專門用來存放自定義的模板庫;也可以放在專案中的任何乙個app下面。這裡推薦第一種方式,因為第一種方式寫完後,可以移植到其他專案中使用。不用重複編寫。但是,無論你採用哪種方式,你都要把存放你模板庫的app新增到settings.py的installed_apps中!!!

第二,在以上你選擇的包下,建立乙個名叫templatetags目錄,這個目錄應當和models.py和views.py處於同一層次。然後在templatetags中建立兩個空檔案:乙個是__init__.py表示這不是乙個普alfcw通的資料夾,這是乙個pyt程式設計客棧hon**包,另外乙個是你用來存放模板庫的檔案(比如:my_template.py)。然後在你需要用到這個庫檔案的模板檔案中,使用進行匯入,重要的事情再說一遍,你必須把這個my_template.py所處的app新增到settings.py的installed_apps中才有用。

三、建立自定義過濾器:

過濾器實際上就是乙個帶有乙個或者兩個引數的python函式:

例如我們建立乙個將變數的所有空格替換成某個值的過濾器:

def removespace(value,arg):

return value.replace(' ',arg)

然後註冊近模板中,使用以下**進行註冊:

from django import template

register = template.library()

@register.filter

def removespace(value,arg):

return value.replace('',arg)

那麼你在使用的時候,只要在模板中使用一下**進行使用:

}那麼varalfcwiable這個變數中的所有空格都會被替換成a。

Django 過濾器 例項

例項 safe 讓html標籤以及一些特殊符號 如 生效,下面以例子說明 value cpt 那麼輸出的時候,cpt就是加粗的,如果不加safe那麼顯示出來的就是純文字cpt striptags 取消所有html標籤,下面以例子說明 value cpt 那麼輸出的時候,只有cpt且沒有加粗沒有段落 ...

django過濾器大全

1 add 將value的值增加2。使用形式為 2 addslashes 在value中的引號前增加反斜線。使用形式為 3 capfirst value的第乙個字元轉化成大寫形式。使用形式為 4 cut 從給定value中刪除所有arg的值。使用形式為 5 date 格式化時間格式。使用形式為 也可...

Django過濾器的使用

django模板 django採用的是mvc模式,最後從資料庫取出來的資料會經過view檢視渲染到template模板上,在模板上載入資料使用的是模板語言。在模版中,有時候需要對一些資料進行處理以後才能使用。一般在 python 中我們是通過函式的形 式來完成的。而在模版中,則是通過過濾器來實現的。...