Django中自定義過濾器的使用

2021-10-01 03:51:36 字數 2024 閱讀 9977

我在這裡做的是: 從資料庫查出id遞增的一些資訊,展示在前台。

編寫乙個過濾器判斷查出資料的id是偶數的返回true 奇數返回false

1 建立專案,建立應用,註冊應用,配置settings.py檔案,配置urls對映,編寫views試圖,編寫模板templates,編寫models模組

切記 註冊應用。  很多夥伴找不到自己定義的過濾器,是因為忘記註冊應用!

2 建立過濾器的目錄:

實際上,在專案目錄或者應用目錄下建立都是可以的,建立乙個名為templatetags的python模組

在我這裡,booktest是乙個應用,templatetags 是存放過濾器的模組,,模組和目錄的區別是 模組裡面必須有__init__.py,告訴python這是可以import的東西

在templatetags模組裡,建立乙個py檔案,寫我們的自定義過濾器,檔名稱可以自己定,這裡我用filters.py

3 過濾器的編寫:

1

from django.template import

library

23 register =library()45

#乙個偶數為真的過濾器

6 @register.filter# @register.filter(name='odd')  過濾器裡面有很多選項

7 def odd(num ):

8return num%2==0

過濾器必須用library().filter 來進行裝飾, name表示過濾器的名字,也可以不指定,函式名就是過濾的名字

裝飾後的函式,才能當作過濾器來使用

4 模板檔案引入過濾器和使用

1

doctype html

>

2<

html

lang

="en"

>34

567<

head

>

8<

meta

charset

="utf-8"

>

9<

title

>title

title

>

10<

style

>

11.red

14.gold

17style

>

18head

>

19<

body

>

20<

ul>

2122

2324

<

li class

="red"

>

25}----}----}

26li

>

2728

<

li class

="gold"

>

29}----}----}

30li

>

3132

3334

ul>

3536

<

ul>

3738

<

li >}----}

li>

3940

41ul

>

4243

body

>

44html

>

在模板中必須用 來引入我們的過濾器函式所在的py檔案,name是py檔案的名字 這裡我的事filters

之後 如果使用過濾器那麼就直接 變數|過濾器 就可以了。

<

li class

="red"

>

}----}----}

li>

我做的是  id是基數和偶數分別改變不同的背景色。

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