Django模板过滤器详解

部分A:Django自带的常用过滤器
部分B:自定义过滤器及使用

A (这个表格看起来好丑啊ლ(´—`ლ))

代码解释效果
{{ params|upper }}使参数大小写(lower/upper)
{{ now_time|date:"Y年M月d日 h:m:s F月份全拼" }}格式化日期对象在这里插入图片描述
{{ code|slice:':' }}Django中的切片,类似于python语法,不再介绍
{{ "abcd"|title }}首字母大写(同capfirst)
{{ '8451.455'|floatformat:'2' }}四舍五入保留多少位小数在这里插入图片描述
{{ '<h1>啦啦啦</h1>'|escape }}字符串转换成html实体在这里插入图片描述
{{ 'A B C'|truncatewords:'2' }}截取指定个数单词,剩余部分省略号表示在这里插入图片描述

其他:
length 返回字符串长度
first 返回列表中的第一个值
last 返回列表中的最后一个值
{{ "ABCD"|linebreaks }} 用新行用、标记包裹
{{ "ABCD"|linebreaksbr }} 用新行用 标记包裹
{{ value|add:"5" }} 给value加上一个数值
{{ string|truncatewords_html:"2" }} 截取指定个数的html标记,并补完整

在这里插入图片描述

B:日常卖萌,开始自定义部分

我们自定义一个获取一个整型参数即可切对应字符串位数的简单过滤器。

在app目录下新建一个templatetags文件夹,创建自定义过滤器文件customtags.py,在html文件中调用该过滤器即可
(文件夹名称和.py文件名称都可修改)

customtags.py

from django import template
# 1. 先创建一个过滤器注册器,用于注册自定义的过滤器。
register = template.Library()
# 2. 可以自定义过滤器,只需要携带装饰器@register,就是可以实现注册了。
@register.filter
def filter_chars(value, arg):
    """
    实现对字符串的切片功能的过滤器,多余字符串省略。
    :param value: 视图函数给模版传递的原始数据。
    :return: 就是处理之后的数据。
    """
    return value[0:arg] + '.QAQ.'

.html文件
先载入你的自定义过滤器文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
        {% load customtags %}
        {{ '123456'|filter_chars:4 }}<br>
</body>
</html>

展示效果如下
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值