Django入门教程(五)自定义模板标签和过滤器

1、创建项目
django-admin startproject djangocustomtagandfilter
cd djangocustomtagandfilter
python manage.py startapp customtagfilter
2、在项目根目录下新建模板文件夹templates并在其下新建index.html文件
在这里插入图片描述
3、 注册app和配置模板搜索路径
注册app应用:
在这里插入图片描述
配置模板搜索路径:
在这里插入图片描述

3、编写路由
在urls.py文件中编写路由。

from django.contrib import admin
from django.urls import path
from customtagfilter import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('customtagfilter/', views.customtagfilter),
]

在这里插入图片描述

4、编写业务逻辑,即视图函数。

def customtagfilter(request):
    return render(request,template_name='index.html',context={'name':'zhangsan'})

在这里插入图片描述

5、如何自定义Django模板语言的标签和过滤器:

①在app下新建包(python package)文件:templatetags(名称固定)
②在这个包中新建一个.py文件,名称自定义
在这里插入图片描述

6、在自定义的customtags.py文件下,编写一个进行字符串切片的过滤器。

from django import template
#1、先创建一个过滤器注册器,用于注册自定义的过滤器
register=template.Library()

#2、可以自定义过滤器,只需要携带这个装饰器@register,就可以实现注册了。
@register.filter

def filter_chars(value):
    '''
    该过滤器可以实现对字符串的切片功能。
    :param value: 这个值是视图函数给模板传递的原始数据。
    :return:就是处理之后的数据。
    '''
    return value[0:3]+'....'

在这里插入图片描述
7、此时回到模板文件中引入我们自定义的过滤器

要加载自定义过滤器,需要使用Django内置标签load,加载自定义的过滤器函数。

在这里插入图片描述
刷新查看
在这里插入图片描述

第二部分
自定义标签
1、自定义标签需要使用到@register.simple_tag这个装饰器。现在我们在customtags.py文件中写到:
在这里插入图片描述

2、再去index.html中写入如下代码:
在这里插入图片描述

autoescape标签使用 on 或 off开关来控制块中自动转义的行为,当自动转义生效时,所有变量内容会被转义成HTML输出。此时我们将其自动转义的功能关闭。与过滤器safe的作用类似,该过滤器使得输出不进行转换。此时刷新查看:
在这里插入图片描述
3、注意

过滤器 |,只能用于变量{{ }}的后面,不能用于标签{% %}的后面,而html_tag就是一个自定义的标签。所以,html_tag后面不能使用过滤器。
如{% html_tag | safe %}这种用法是错误的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值