Django自定义模板标签的使用详解
目录
1.创建子应用:python manage.py startapp test01
2.进行相关的配置
3.在新建的test01文件下创建urls.py(此处名称可变但注意上图)
6.views视图函数
7.在test01文件下创建templates文件夹,并在此文件夹下创建html文件
8.配置路径 编辑
9.检测运行:python manage.py runserver
10.运行结果:编辑
1.创建子应用:python manage.py startapp test01
如下图:
2.进行相关的配置
3.在新建的test01文件下创建urls.py(此处名称可变但注意上图)
4.在test01文件下创建名称为templatetags的文件夹
5.templatetags文件下继续创建几个py文件如下图
__init__.py
from django import template register=template.Library()
filter.py
from . import register @register.filter def myupper(value):return value.upper()
labels.py
from . import register import datetime @register.simple_tag def show_name(name):return name @register.simple_tag def show_time(format_str):return datetime.datetime.now().strftime(format_str) @register.simple_tag(takes_context=True) def current_time(context):format_str=context.get('format_str')return datetime.datetime.now().strftime(format_str) @register.inclusion_tag('include.html',name="stags") def show_tags(person):items=[{'name':'test','age':18,}]return {"items":items,'person':person}
6.views视图函数
from django.shortcuts import render# Create your views here.
def a(request):return render(request,"filter.html",context={'feng':"a",'format_str':"%Y-%m-%d %H:%M:%S"})
def include_tags(request):return render(request,"show_tags.html",context={'person':{'name':request.GET.get('username'),'age':request.GET.get('age')}})
7.在test01文件下创建templates文件夹,并在此文件夹下创建html文件
filter.html
{% load filters %} {% load labels %} <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <div>{{ feng|myupper }}<p>自定义标签</p>{% show_name '小' %}<li>时间:{% show_time "%Y-%m-%d" %}</li><li>上下文时间:{% current_time %}</li> </div> </body> </html>
include.py
<ul>{{items }}{{ person }} </ul>
show_tags.html
{% load labels %} <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body> <div>{% stags person %}</div> </body> </html>
8.配置路径 
from django.urls import path
from . import views
urlpatterns=[path('a',views.a),path('b/',views.include_tags)
]
9.检测运行:python manage.py runserver
10.运行结果: