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' }} 四舍五入保留多少位小数 在这里插入图片描述
{{ '

啦啦啦

'|escape }}
字符串转换成html实体 在这里插入图片描述
{{ 'A B C'|truncatewords:'2' }} 截取指定个数单词,剩余部分省略号表示 在这里插入图片描述

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

Django模板过滤器详解_第1张图片

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文件
先载入你的自定义过滤器文件




    
    Index


        {% load customtags %}
        {{ '123456'|filter_chars:4 }}

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

你可能感兴趣的:(Django模板过滤器详解)