django開發系列 自定義過濾器

2021-09-29 18:42:54 字數 877 閱讀 6337

在這個templatetags包下面,建立乙個python檔案用來儲存過濾器。

在新建的python檔案中,定義過濾器(也就是函式),這個函式的第乙個引數永遠是被過濾的那個值,並且如果在使用過濾器的時候傳遞引數,那麼還可以定義另外乙個引數。但是過濾器最多只能有2個引數。

在寫完過濾器(函式)後,要使用django.template.library.filter進行註冊。

在模板中使用load標籤載入過濾器所在的python包。

可以使用過濾器了。

django.template.library.filter還可以當作裝飾器來使用。如果filter函式沒有傳遞任何引數,那麼將會使用這個函式的名字來作為過濾器的名字。當然如果你不想使用函式的名字來作為過濾器的名字,也可以傳遞乙個name引數。示例**如下:

from django import template

from datetime import datetime

register = template.library(

)# 過濾器最多只能有兩個引數

# 過濾器的第乙個引數永遠都是被過濾的那個引數(也就是豎線左邊的那個引數)

@register.

filter

('my_greet'

)def

greet

(value,word)

:return value + word

#另一種註冊方法

register.

filter

("greet"

,greet)

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 把傳遞過來的引...