自定義模板標籤案例
定義復用
templates存放模板的目錄
templatetags存放自定義標籤及過濾器的目錄
templatetags這個目錄名字是固定的,而裡面的模組名是自定義的
定義非常簡單,就是寫乙個函式,乙個帶有乙個或兩個引數的python引數:
也可以把register.filter()用做裝飾器
沒有宣告name引數,django將使用函式名作為過濾器的名字
django.template.labrary.******_tag()
註冊
引用上下文變數(views中render傳遞到模板中的那個context)
使用自定義模板標籤
django.template.library.inclusion_tag()
包含標籤的功能是可以通過渲染另外乙個模板來顯示一些資料
很多地方都可能會用到下面這幾行**,除了choices(模板變數)這幾個變數不一樣之外,其他的都是格式都一樣時,那麼我們就可以把這部分**封裝在乙個包含標籤中
index.html的部分**:
#}
#}#}
customer_tags.py的部分**:
@register.inclusion_tag('students/show_list_as_ul.html') #引數是想要傳的模板路徑
def show_list_as_ul(value, style):
return
# registerinclusion_tag('students/show_list_as_ul.html')(show_list_as_ul)
自定義過濾器,標籤,inclusion tag
三個必須 在應用下建立乙個名字 必須 叫templatetags資料夾 在該資料夾內建立 任意 名稱的py檔案 如 mytag.py 在該py檔案內 必須 先書寫以下兩句話 乙個子都不能錯 from django import template register template.library 現...
自定義過濾器
這裡的過濾器的作用主要是在業務邏輯裡面判斷,傳遞的引數是否有誤,然後在實現類裡面去判斷具體的業務資料,執行流程和servlet的過濾器相類似,但是執行時機和作用大不相同,servlet的執行時機是在請求資源,在達到control之前去執行,通過執行鏈,我們的這個過濾器是在control裡,如下.先定...
Django自定義過濾器和自定義標籤
3 在模板下建立任意名稱的.py檔案 4 在剛剛建立的.py檔案中定製過濾器 from django.template import library register library register.filter name rule 最多包含兩個引數 defrule value,before 將b...