Django- filter和simpletag,inclusion_tag的用法
阿新 • • 發佈:2018-09-11
nbsp from .lib rgs 調用 lan gis pri temp
filter的用法:
#先引入template from django import template #聲明register,名字只能是register register = template.Library() #帶名字的裝飾器,調用的時候用起的名字 如dsb @register.filter(name=‘dsb‘) def add_sb(value, arg): return "{}_{}abc".format(value, arg) @register.filter def add_sb(value, arg): return "{}_{}_abc".format(value, arg)
自定義simpletag和自定義inclusion_tag
1. 在app下創建一個名叫templatetags的python包
2. 在templatetags裏建一個py文件
simpletag的用法:
和自定義filter類似,只不過接收更靈活的參數。
定義註冊simple tag
@register.simple_tag def join_str(arg1, arg2, arg3,*args,**kwargs): print(args) #(‘tian‘, ‘shan‘, ‘tong‘, ‘lao‘) print(kwargs) #{‘key1‘: ‘menglang‘, ‘key2‘: ‘menggu‘} #{% load mytags %} # {% join_str ‘xiaofeng‘ ‘duanyu‘ ‘xuzhu‘ ‘tian‘ ‘shan‘ ‘tong‘ ‘lao‘ key1=‘menglang‘ key2=‘menggu‘ %} return ‘_‘.join([arg1, arg2, arg3])+‘*‘.join(args) #xiaofeng_duanyu_xuzhutian*shan*tong*lao
inclusion_tag的用法: 多用於返回html代碼片段
@register.inclusion_tag(‘pagination.html‘) def pagination(total, current): return {‘total‘: range(1, total + 1), ‘current‘: current}
Django- filter和simpletag,inclusion_tag的用法