Django自定义模板标签的使用详解

 

目录

1.创建子应用:python manage.py startapp test01

2.进行相关的配置

3.在新建的test01文件下创建urls.py(此处名称可变但注意上图)

4.在test01文件下创建名称为templatetags的文件夹

5.templatetags文件下继续创建几个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.运行结果:

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小木猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值