日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django中自定义过滤器的使用

發布時間:2024/9/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django中自定义过滤器的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

我在這里做的是: 從數據庫查出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 2 3 register = Library() 4 5 #一個偶數為真的過濾器 6 @register.filter # @register.filter(name='odd')  過濾器里面有很多選項
7 def odd(num ):
8   return num%2==0

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

裝飾后的函數,才能當作過濾器來使用

?

?

4 模板文件引入過濾器和使用

?

1 <!DOCTYPE html> 2 <html lang="en"> 3 4 {# 必須用這一句去引用過濾器 filters是我過濾器所在py文件的名字 #} 5 {% load filters %} 6 7 <head> 8 <meta charset="UTF-8"> 9 <title>Title</title> 10 <style> 11 .red{ 12 background-color: red; 13 } 14 .gold{ 15 background-color: gold; 16 } 17 </style> 18 </head> 19 <body> 20 <ul> 21 {% for book in books %} 22 {# 使用過濾器 #} 23 {% if book.id|odd %} 24 <li class="red"> 25 {{ book.id }}----{{ book.btitle }}----{{ book.bpub_date|date:'Y-m-d' }} 26 </li> 27 {% else %} 28 <li class="gold" > 29 {{ book.id }}----{{ book.btitle }}----{{ book.bpub_date|date:'Y-m-d' }} 30 </li> 31 {% endif %} 32 {% endfor %} 33 34 </ul> 35 36 <ul> 37 {% for hero in heros %} 38 <li >{{ hero.id }}----{{ hero.hname }}</li> 39 {% endfor %} 40 41 </ul> 42 43 </body> 44 </html>

?

?

?

?

在模板中必須用{%load name%} 來引入我們的過濾器函數所在的py文件,name是py文件的名字 這里我的事filters

之后 如果使用過濾器那么就直接 變量|過濾器 就可以了。

?

{# 必須用這一句去引用過濾器 filters是我過濾器所在py文件的名字 #} {% load filters %}

?

{# 使用過濾器 #}{% if book.id|odd %}<li class="red">{{ book.id }}----{{ book.btitle }}----{{ book.bpub_date|date:'Y-m-d' }}</li>{% else %}

?

?

?

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

?

?

?

?

?

轉載于:https://www.cnblogs.com/Lin-Yi/p/7560744.html

總結

以上是生活随笔為你收集整理的Django中自定义过滤器的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。