三個必須
在應用下建立乙個名字"必須"叫templatetags
資料夾
在該資料夾內建立"任意"名稱的py檔案 如 : mytag.py
在該py檔案內"必須"先書寫以下兩句話(乙個子都不能錯)
from django import template
register = template.library()
現在開始自定義過濾器
# 後端
@register.filter(name='baby')
def my_sum(v1, v2):
return v1 + v2
# 前端
}
@register.******_tag(name='plus')
def index(a,b,c,d):
return '%s-%s-%s-%s'%(a,b,c,d)
# 使用
標籤多個引數彼此之間空格隔開
# 輸出
jason-123-123-123
內部原理:現在views.py定義乙個方法,再定乙個頁面並呼叫方法,並且可以傳值,該方法會生成一些資料然後傳遞給html頁面,再將渲染好的結果放到呼叫的位置。
@register.inclusion_tag('lift.html')
def left(n):
data = ['第{}項'.format(i) for i in range(n)] # 列表生成式
# 將data傳遞給'lift.html'
# 第一種方式
return
# 第二種方式
當html頁面某乙個地方需要傳引數才能夠動態的渲染,並且在多個頁面上都需要使用到該區域性,就可考慮該區域性頁面改為inclusion_tag
自定義過濾器及標籤
自定義模板標籤案例 定義復用 templates存放模板的目錄 templatetags存放自定義標籤及過濾器的目錄 templatetags這個目錄名字是固定的,而裡面的模組名是自定義的 定義非常簡單,就是寫乙個函式,乙個帶有乙個或兩個引數的python引數 也可以把register.filter...
自定義過濾器
這裡的過濾器的作用主要是在業務邏輯裡面判斷,傳遞的引數是否有誤,然後在實現類裡面去判斷具體的業務資料,執行流程和servlet的過濾器相類似,但是執行時機和作用大不相同,servlet的執行時機是在請求資源,在達到control之前去執行,通過執行鏈,我們的這個過濾器是在control裡,如下.先定...
Django自定義過濾器和自定義標籤
3 在模板下建立任意名稱的.py檔案 4 在剛剛建立的.py檔案中定製過濾器 from django.template import library register library register.filter name rule 最多包含兩個引數 defrule value,before 將b...