Django(七): 模板定义filter和tag

自定义filtertag:
1>. 自定义filter:
1>>. app中创建templatetags模块
2>>. 创建任意myTag.py文件
3>>. from django import template
register = template.Library() #register的名字是固定的,不可改变

@register.filter # 自定义过滤器, 只能传参一个
def filter_multi(t1, t2):
return t1 * t2
/************template***************/
{% load myTag %} # 加载自定义标签库
<h1> {{ test|filter_multi:3 }}</h1> # 调用自定义标签

2>. 自定义tag: 1> - 3> 一样
from django.utils.safestring import mark_safe # 导入安全声明函数

@register.simple_tag # 自定义标签, 不限制参数, 但不能用在控制语句里面
def simple_tag_multi(v1,v2):
return v1 * v2

@register.simple_tag
def my_input(id,arg):
result = "<input type='text' id='%s' class='%s' />" %(id,arg,)
return mark_safe(result) # tag中只能这样用, 相当于filter中的 safe 声明

/************template***************/
{% load myTag %} # 加载自定义标签库
{% my_input id arg%}
{% simple_tag_multi v1 v2%}

猜你喜欢

转载自www.cnblogs.com/lancelotxly/p/10871596.html