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 %}这种用法是错误的。
- django自定义过滤器及模板标签
- django 自定义模板标签和过滤器
- 自定义Django模板过滤器和标签
- django 自定义模板标签和过滤器
- django 自定义模板标签和过滤器
- django “如何”系列4:如何编写自定义模板标签和过滤器
- python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
- Django 博客开发教程 10 - 页面侧边栏:使用自定义模板标签
- django “如何”系列4:如何编写自定义模板标签和过滤器
- Django 自定义过滤器和模板标签
- Django自定义模板过滤器和标签
- 自定义标签、过滤器-django
- 浅谈Django自定义模板标签template_tags的用处
- Django 内建的模板标签和过滤器
- django 模板标签 过滤器
- [django]入门教程3:模板语法及使用
- Part 3:视图和模板--Django从入门到精通系列教程
- 详解django中自定义标签和过滤器
- Django 模板中 变量 过滤器 标签 的使用方法