【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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用