1、概念
自定义标签:
写一个标签函数,能够对html页面传进来的参数进行处理,并且返回效果
过滤器
过滤器函数,把html页面传进来的参数进行处理加工后再返回处理后的结果
2、自定义标签
1、创建
a、在app中创建templatetags模块
b、创建任意 .py 文件,如:xx.py
from django import template
register = template.Library()
@register.simple_tag
def my_simple_time(v1,v2,v3):
return v1 + v2 + v3
@register.simple_tag
def my_input(id,arg):
result = "<input type='text' id='%s' class='%s' />" %(id,arg,)
return result
2、使用
a、在使用自定义simple_tag的html文件中导入之前创建的 xx.py 文件名
{% load xx %}
b、使用simple_tag
{% my_simple_time 1 2 3%}
{% my_input 'id_username' 'hide'%}
3、自定义过滤器
1、创建
a、在app中创建templatetags模块
b、创建任意.py文件,如:xxoo.py
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def ya(value,v):
temp = '<a href="http://www.baidu.com?t=%s">%s</a>'%(value,v)
return mark_safe(temp)
2、使用
a、在使用自定义filter的html文件中导入之前创建的xxoo.py文件名
{% load xxoo %}
b、使用filter
{{ 8|ya:'跳转' }}
4、总结
1、二者在作用上的区别就在定义上
2、两者在创建时候的区别
3、使用上的区别
{% my_simple_time 1 2 3%}
{% my_input 'id_username' 'hide'%}
{{ 8|ya:'跳转' }}