Django 自定義模版標籤和過濾器

2021-09-01 17:57:23 字數 764 閱讀 2558

2、編寫自定義過濾器  test_filter.py

#!/usr/bin/env python

#coding:utf-8

from django import template

from utils.timebefore import timebefore

register = template.library()

def test_filter(value,arg=none):

'''擴大原來的2倍'''

return value * 2

register.filter('test', test_filter)

當然register.filter('test',test_filter)可以用裝飾器代替

@register.filter(name='cut')

def cut(value, arg):

return value.replace(arg, '')

@register.filter

def lower(value):

return value.lower()

如果沒有自定過濾器名稱,django使用函式名作為過濾器的名字。

3、在模版中開頭處載入過濾器  

4、在模版中使用過濾器:}

自定義標籤:

標籤的定義比過濾器要複雜,自定義標籤需要告訴模版系統如何編譯和渲染。

參考:

django 模版系統 標籤的自定義

為了自定義乙個模版標籤,你要告訴django遇到這個標籤的時候該怎麼辦。當django編譯乙個模版時,它將原來的模版分成乙個個節點 node 每個節點都是django.template.node的乙個例項,並且具備render 方法,於是,乙個已編譯的模版就是節點物件的乙個列表,例如 hello,b...

Django 自定義標籤

模版是乙個用django模版語言標記過的python字串。模版可以包含模版標籤和變數。模版標籤是在乙個模版裡起作用的標記。比如,乙個模版標籤可以產生控制結構的內容 if或者for 可以獲取資料庫內容或者訪問其它模版標籤。乙個標籤塊被包圍 變數標籤被 包圍 context是乙個傳遞給模版的key va...

Django 自定義標籤

新建乙個資料夾mydefined裡面在新建乙個templatetags在裡面新建mytags.py mytags.py 劉文豪 大帥哥 from django import template register template.library 建立模板物件 定義模板節點 class reversal...