我在這裡做的是: 從資料庫查出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過濾器必須用library().filter 來進行裝飾, name表示過濾器的名字,也可以不指定,函式名就是過濾的名字from django.template import
library
23 register =library()45
#乙個偶數為真的過濾器
6 @register.filter# @register.filter(name='odd') 過濾器裡面有很多選項
7 def odd(num ):
8return num%2==0
裝飾後的函式,才能當作過濾器來使用
4 模板檔案引入過濾器和使用
1在模板中必須用 來引入我們的過濾器函式所在的py檔案,name是py檔案的名字 這裡我的事filtersdoctype 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
>
之後 如果使用過濾器那麼就直接 變數|過濾器 就可以了。
<我做的是 id是基數和偶數分別改變不同的背景色。li class
="red"
>
}----}----}
li>
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 把傳遞過來的引...