2.12simple_tag和filter

今天简单介绍一下simple_tag还有filter这两个内容。

这两个是干什么的呢,这两个是丰富HTML中函数的,也就是说 给HTML多一些功能,举一个简单的例子,如果你想要输入一些小写字母,然后让他自己变成大写字母,你可以自己写一个simple_tag,来达到这个目的。

filter和他的用法差不多,还是有一点区别的,慢慢往下看。

 看我的目录结构,在你的创建的app文件夹下创建一个叫做templatetags的文件夹 , 记住,必须叫做这个名字,叫别的名字无效

然后随便创建一个py文件,里面的内容如下:

 这是固定格式:

from django import template
from django.utils.safestring import mark_safe
register=template .Library()

@register .simple_tag()
再往下就是你需要做的函数了:

 然后在HTML里要这么用

直接引用你的函数名,filter和这个用法一样,不过:

- 自定义函数
simple_tag
a. app下创建templatetags目录
b. 任意xxoo.py文件
c. 创建template对象 register
d.
@register.simple_tag
def func(a1,a2,a3....)
return "asdfasd"
e. settings中注册APP
f. 顶部 {% load xxoo %}
g. {% 函数名 arg1 arg2 %}
缺点:
不能作为if条件
优点:
参数任意
filter
a. app下创建templatetags目录
b. 任意xxoo.py文件
c. 创建template对象 register
d.
@register.filter
def func(a1,a2)
return "asdfasd"
e. settings中注册APP
f. 顶部 {% load xxoo %}
g. {{ 参数1|函数名:"参数二,参数三" }} {{ 参数1|函数名:数字 }}
缺点:
最多两个参数,不能加空格
优点:
能作为if条件

原文地址:https://www.cnblogs.com/y862621115/p/12372372.html