django中自定义标签和过滤器

django中自定义标签和过滤器

前言

在学习使用django的时候,自己搞了个小网站,期间与到不少问题,有一个比较突出,就是在模板中的DTL语言,很多python自身的方法无法调用,如str.split(), a++等等,经过多方查找资料,发现了django自身就可以进行自定义标签和过滤器

django中自定义标签和过滤器

  1. 首先在项目的引用应用目录,新建一个templatetags目录(固定名字),然后在目录中新建任意名字的python文件,如mytags.py,和一个 init.py
    在这里插入图片描述
  2. 第二步,我们需要在setting.py中注册刚刚新建的templatetags。
    在这里插入图片描述
  3. mytags.py 的代码如下
#coding="utf-8"

from django import template

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


@register.filter
def add2(x, y):  # 这里是简单的加运算
    x = x + y
    return x
    

@register.filter
def mSplit(x, y):   # 这里是字符串的切割
    return x.split(y)
    
@register.simple_tag  标签
def multitag(x,y,z):
    return x*y*z
  1. 使用自定义标签和过滤器
    在要使用标签和过滤器的html模板中,加载tag ,{% load mytags %} 这里的mytags改为你们刚刚在templatetags文件夹中定义py文件的名字

在这里插入图片描述

在对应需要使用的时候,直接用 {{ a | mSplit “,” }} 切割字符串,

{{ a | add2 1 }}自身加1

在这里插入图片描述

注意:

过滤器: {{ var|filter_name:参数 }} # 参数只能是两个,一个参数是变量var ,一个是参数是后面的那个参数

标签: {% simple_tag 参数1 参数2 … %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值