2.12simple_tag和filter
Posted y862621115
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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条件
以上是关于2.12simple_tag和filter的主要内容,如果未能解决你的问题,请参考以下文章
Django(模板语言-自定义filter和simple_tag)
Django(模板语言-自定义filter和simple_tag)
django-自定义过滤器(simple_tag和filter)