Django 模板过滤器详解

Django 模板过滤器详解

Django 模板过滤器详解

在基于 Django 的网站开发过程中,模板过滤器是常用的工具之一,用于显示格式的转换、判断处理等。以下是一些常用的 Django 过滤器列表及其用法示例。

文本转换

  • 小写

    {{ name | lower }}
  • 首字母大写

    {{ "abcd"|capfirst }}
  • 全部大写

    {{ "abcd"|upper }}
  • 标题化

    {{ "a b c d e f"|title }}
  • 字符串格式化

    {{ 3|stringformat:"02i" }}

日期与时间

  • 格式化日期

    {{ pub_date | date:"F j, Y" }}
  • 时间格式化

    {{ 时间变量|time:"P" }}
  • 计算已过时间

    {{ datetime|timesince }}
  • 计算剩余时间

    {{ datetime|timeuntil }}

数学运算

  • 加法

    {{ 123|add:"5" }}
  • 四舍五入

    {{ 13.414121241|floatformat:"2" }}

列表操作

  • 返回列表第一个元素

    {{ list|first }}
  • 返回列表长度

    {{ list|length }}
  • 判断列表长度

    {% if 列表|length_is:"3" %}
  • 排序

    {{ 列表变量|dictsort:"数字" }}
  • 逆序排序

    {{ 列表变量|dictsortreversed:"数字" }}
  • 切片

    {{ 列表|slice:":2" }}
  • 随机选择

    {{ 列表|random }}

字符串处理

  • 转义 HTML

    {{ string|escape }}
  • 字符串连接

    {{ my_text|escape|linebreaks }}
  • 截断字符串

    {{ bio | truncatewords:"30" }}
  • 删除指定字符串

    {{ "123spam456spam789"|cut:"spam" }}
  • 添加斜杠

    {{ "AB'CD"|addslashes }}
  • 字符串对齐

    {{ "abcd"|center:"50" }}
  • 删除 HTML 标签

    {{ string|striptags }}
  • 转换为 slug

    {{ string|slugify }}
  • 字符串分割

    {% for i in "1abc1"|make_list %}
    ABCDE,
    {% endfor %}
  • 字符串替换

    {{ "abcdefghijklmnopqrstuvwxyz"|phone2numeric }}

其他

  • 默认值

    {{ value|default:"(N/A)" }}
  • 条件判断

    {% if 92|divisibleby:"2" %}
  • 文件大小格式化

    {{ 21984124|filesizeformat }}
  • URL 编码

    {{ string|urlize }}
  • 布尔值转换

    {{ boolean|yesno:"Yes,No,Perhaps" }}
  • 单词计数

    {{ "B C D E F"|wordcount }}
  • 换行处理

    {{ "abcd"|linebreaks }}
  • HTML 无序列表

    {{ list|unordered_list }}

这些过滤器可以帮助开发者更灵活地处理数据展示,提高代码的可读性和可维护性。希望这些信息能够帮助大家更好地使用 Django 进行开发。


Django 模板过滤器详解
https://www.dearcloud.cn/2017/12/20/20200310-cnblogs-old-posts/20171219-Django模板过滤器详解/
作者
宋兴柱
发布于
2017年12月20日
许可协议