【django学习-11】模板3:自定义标签与过滤器

  • 前言:Django 虽然内置了二十多种标签和六十多种过滤器,但是为了给 Web 开发者提供更好使用体验,Django 也提供了自定义标签与过滤器的功能。当内置标签与过滤器满足不了实际业务的需求,那么我们就可以通过自定义的方式去实现,在本节我们将对如何实现自定义标签进行讲解。

  • 操作步骤

    • 1、在app中创建templatetags模块(必须的)
    • 2、创建任意 .py 文件,如:my_tags.py
from django import template

register = template.Library()   #register的名字是固定的,不可改变


@register.filter
def filter_multi(v1,v2):
    return  v1 * v2


@register.simple_tag
def simple_tag_multi(v1,v2):
    return  v1 * v2
  • 3、在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py :
  • 4、使用simple_tag和filter(如何调用)
def tag(req):
    num = 10
    #L = [1,22,333,4444,55555]
    #html = "<h2>这是一个标签</h2>"
    return render(req,"tag.html",locals())

templates/tag.html
{% load my_tags %}
{#引入自定义标签或者过滤器#}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ num|filter_multi:5 }}
{#最多带两个参数,一个为变量,冒号后只能一个参数#}

{% simple_tag_multi num 10 %}
{#参数不限,但不能放在if for语句中#}
</body>
</html>
  • 5、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag
posted @   Tony_xiao  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示