版权声明:学而不思则罔,思而不学则殆 https://blog.csdn.net/weixin_43422505/article/details/83210956
- 在app下或者项目的根目录下,新建包文件:templatetags(固定)
- 在这个包里面新建一个.py文件
- 导入模块
from django import template
- 先创建一个注册器,用于注册自定义的过滤器
register=template.Library( )
- 自定义过滤器
- 只要携带@register就可以实现注册了.后面跟你注册的过滤器名字
@register.filter( )
def customtagfilter(request):
return render(request,template_name='index.html',context={'name':'zhangsan'})
- 过滤器的写法
def filter_chars(value,arg):
'''
该过滤器可以实现对字符串的切片功能
:param value:这个值是视图函数给模板传递的原始数据
arg:可以通过模板传值,自定义切片
:return:就是处理之后的数据
'''
return value[0:arg] +'...'
- 模板需要引用
{% load customtags %}
- index.html
<body>
<p>{{ name | filter_chars:3 }}</p>
</body>
- 通过端口查看
- 自定义标签
simple_tag这种类型的标签不能使用过滤器
@register.simple_tag
def html_tag(str, str1):
print('====', str, str1)
if str == "input":
return '<input type="text" name="username" placeholder="输入密码"></input>'
return '<p>自定义的P标签</p>'
- index.html
{% autoescape off %}
{% html_tag "input" "p" %}
{% html_tag "p" "p" %}
{% endautoescape %}