>[success] # 自定义模板过滤 当页面所提供的过滤方法,已经不能满足使用的时候,可以自定义方法 * 步骤 ~~~ 1.在app中创建templatetags文件 2.创建任意.py文件 3.在使用html 页面将python文件{% load %} 将模板引入 ~~~ >[danger] ##### 图片说明 ![](https://box.kancloud.cn/565d8adcef961121365bb8d807fa218b_224x310.png) * * * * * ![](https://box.kancloud.cn/049ef0b1c77ea07d7a928a1e81d66abb_317x191.png) >[info] ## 自定义fittler `{{ 参数1|函数名:数字 }}` * 缺点: 最多两个参数,不能加空格 * 优点: 能作为if条件 >[danger] ##### 在templatetags-tag.py中 第一参数也就是v1 是后台传递的,第二个是html 传入的 ~~~ from django import template from django.utils.safestring import mark_safe register = template.Library() @register.filter def test(v1,v2): print(v1,v2) # v1 是 msg v2是6 return v1+v2 ~~~ >[danger] ##### 在html 中 ~~~ {{ msg|test:6 }} ~~~ >[info] ## 自定义simple_tag * 缺点: 不能作为if条件 * 优点: 参数任意 >[danger]##### 在templatetags-tag.py中 ~~~ from django import template from django.utils.safestring import mark_safe register = template.Library() @register.simple_tag def test(v1,v2,v3): return v1+v2+v3 ~~~ >[danger] ##### 在html 中 ~~~ {% test 1 2 3 %} ~~~ >[danger] ##### 显示html代码 ~~~ from django.utils.safestring import mark_safe @register.simple_tag def safe_html(html): return mark_safe(html) ~~~