Django第五课之自定义模板过滤器及标签
自定义标签好多都是按照Django中的规则来的,然后才可以灵活使用。为什么这么说呢,请看下面的介绍。
1.自定义模板过滤器
在app目录下创建一个名为templatetags的包。是在app目录下,并且这个app在setting中被注册。
代码怎么写呢?
这个文件名称可以随便点,但是一定要有意义。
上面这个图我们分析一下。
一般的自定义过滤器至少有一个参数,最多有两个参数。第一个参数是模板传过来的变量值,第二个是普通的值。接下来我们说的就是规则。
from django.template import Library
register = Library()
@register.filter()
这几行代码都是django的规则,必须这么写,装饰器写在每个自定义过滤标签的上面。
然后我们这么使用呢?看图:
首先,我们load引入这个过滤器,然后就和之前的过滤器一样的使用。
2.自定义模板标签
接下来呢,我们说的是自定义模板标签,这个基本规则和自定义过滤器一样。看代码
文件名称可以自定义,但是一定要有意义。
模板标签中的值,我们可以自定义,也可以用上下文中的变量来处理。看图。我们说的Django的规则
from django.template import Library register = Library() @register.simple_tag()
这些都是规定好的,不可以修改。如果使用上下文中的变量,我们就在装饰器中添加参数takes_context=True就可以了
看下图使用
一样,先引入文件,然后使用。如果使用的上下文,我们就在view中传值。看图;
3包含标签
最后一个知识点就是很简单的,也是我们再工作中可以用,体现高内聚,低耦合。
ul.html放在template下的app目录下。
然后把你的模板标签预先修改的内容写好。
然后是使用,看下图:
是用的方法和标签一样,这个自定义的需要引入你的标签.py文件。然后你就可以了。