您的位置:首页 > 编程语言 > Go语言

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

2018-10-22 14:37 1001 查看

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 %}这种用法是错误的。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: