django自定義過濾器函式

2021-07-03 06:11:40 字數 1385 閱讀 3523

自定義過濾器就是乙個帶

2個引數的

python

函式。} == call remove( var, 「bar」 )

defremove(var, arg):

#移除字串中

var的

arg字串

returnvar.replace(arg, '')

過濾器函式應該總是返回一些資訊,即使出錯,也不應該丟擲異常,可以返回預設值或者空字串。

不帶引數的過濾器:

deflower(value):

"converts a string into alllowercase"

returnvalue.lower()

3. 註冊過濾器函式 #

第乙個引數是在模板中使用的過濾器的名字

#第二個就是你的過濾器函式引用名

register.filter('remove',remove)

register.filter('lower',lower)

python2.4

以上版本,可以使用裝飾符(

decorator

)功能

@register.filter(name=

'remove')

defremove(value,arg):

returnvalue.replace(arg, '')

@register.filter

deflower(value):

returnvalue.lower()

如果裝飾符不加

name

,則預設使用函式名來當作使用名。

下面是完整**:

fromdjangoimporttemplate

register = template.library()

@register.filter(name=

'remove')

defremove(value,arg):

returnvalue.replace(arg, '')

@register.filter

deflower(value):

returnvalue.lower()

Django自定義過濾器

django中提供了很多的過濾器和標籤,具體可見django官網,例如 upper 化為大寫字母 lower 化為小寫字母 autoescape 自動轉義 block 模板繼承 csrf token 防止跨站偽造請求 extends 模板繼承 filter 過濾器 等 內建的過濾器雖然好用,但是我們...

Django自定義過濾器

為什麼要自定義過濾器?django中雖然已經內建了很多過濾器,但是並不能滿足我們的日常開發,所以我們需要自定義過濾器。在一切配置好了之後,然後在article中新建乙個名為templatetags的package。注意 必須是乙個包,並且包的名字也必須為templatetags package和資料...

django 自定義過濾器

然後在extratags.py檔案中新增自定義的過濾器 from django import template register template.library register.filter name cut 過濾器在模板中使用時的name def mycut value,arg 把傳遞過來的引...