自定义simple_tag和filter在html中渲染出来的联系和区别

关于 simple_tag:

1,在app下创建一个(templatetags)目录,(被引用的模块必须放在该目录下,且目录名称不可更改);

2,创建任意py文件;

3,创建template对象;

1 from django import template
2 register = template.Library()
View Code

4,定义函数并加上装饰器;

1 @register.simple_tag
2 def test3(a1,a2):
3     temp = a1*a2
4     temp2 = temp+10
5     return temp2
View Code

5,在setting中注册app;

6,在应用的html文件的顶部声明要引用的py文件

1 {% load 引用的py文件名 %}

7,使用时可自定义参数,参数之间空格隔开,且参数间空格个数不会影响参数传递;

{% test3 5 7 %}

 1 {% 函数名 参数1 参数2 %} 

缺点:不能作为if条件,  

优点:可以传任意多个参数

 

》》》

关于filter:

1.在app01下创建templatetags目录(同上);   

2.任意py文件(同上);

3.创建template对象register ;(同上)  

4.4,定义函数并加上装饰器;(同上)

1 @register.filter
2 def test4(b1,b2):
3     temp = b1+ b2
4     temp2 = temp + 10
5     return temp2

5.settings中注册app;

6.在顶部{% load xxoo %}   

 7.使用的时候{{参数1|函数名:"参数2,参数3"}} {{参数1|函数名:数字}}   

1         {{ 250|test4:2 }}
2 
3 {#        {{ 'fhj'|test4:'klp' }}#}

 

 缺点:最能只能传2个参数,不能加空格    

优点:能作为if条件

posted @ 2018-01-27 23:10  cerofang  阅读(222)  评论(0编辑  收藏  举报