首页 > 其他分享 >【django学习-11】模板3:自定义标签与过滤器

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

时间:2022-09-07 22:57:47浏览次数:80  
标签:11 自定义 simple 标签 django filter tag 过滤器

  • 前言: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 :{% load my_tags %}
  • 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

标签:11,自定义,simple,标签,django,filter,tag,过滤器
From: https://www.cnblogs.com/xwltest/p/16667520.html

相关文章

  • zabbix自定义监控主从状态延迟与创建用户和组及权限管理
    1:zabbix监控主从部署mysql主从环境用到两台centos8的操作系统一台为master一台为slave[root@localhost~]#hostnamectlset-hostnamemaster[root@localhost~]#ba......
  • 【Django】简单的图书管理系统
    目录1.数据准备2.首页搭建3.书籍展示4.书籍添加5.书籍编辑6.书籍删除1.数据准备classBook(models.Model):"""图书表"""title=models.CharField(max_length=......
  • 11.4 Bug的常见类型-思路不清导致的部题
     lst=[{'rating':[9.7,2062397],'id':'1292052','type':['犯罪','剧情'],'title':'肖申克的救赎','actors':['蒂姆·罗宾斯','摩根·弗里曼']},{'rating':[9.6,15......
  • python3 - Django3.2框架
    提示:web开发已有php、java,而python在这方面,没有优势,python的优势在于:爬虫、人工智能、大数据分析等,python在web开发这方面,没必要掌握;版本:稳定版本:3.2(py3.6-3.10)、4.2(py3.9-......
  • 【django学习-09】模板1:万能的句点号
    前言:Django作为web框架,需要一种很便捷的方法动态的生成HTML网页,因此有了模板这个概念;Django内置的模板引擎包含模板上下文、标签和过滤器,各功能说明如下:模板上下文,以变......
  • 4. 新版本的生产者API 带有自定义分区和回调函数的生产者
    1.开启进程[node123]systemctlstopfirewalld[node123]zkServer.shstart[node123]kafka-server-start.sh/opt/app/kafka-0.11.0.0/config/server.properties&[......
  • 11.2单继承
    classAnimal:def__init__(self,name,hp,ad):self.name=nameself.hp=hpself.ad=addefeat(self):'吃药方法's......
  • 11.1组合
    #练习#圆环#属性:记录大圆半径,小圆半径#实现计算面积:圆环的面积大圆面积-小圆面积#实现计算周长:大圆周长+小圆周长#frommathimportpi####classCircle:......
  • 11.3多继承
    #classC:#deffunc(self):#print('inc')##classB:#deffunc(self):#print('inB')###classA(B,C):#从左到右依次去找你调的方法,B......
  • 11.5面向对象的三大特性
    #面向对象三大特性:封装继承多态#广义得封装:#把方法和变量都封装在类中#比如人狗大战#规范创建对象#创建所有人得属性名都能一致#......