前言
  • 基本环境

    • Django版本:1.11.8
    • Python版本:3.6
    • OS: win10 x64
  • 本文摘要
内置过滤器

注意:所有带参数的过滤器,在使用时,冒号:和参数中间不能有空格。

add加

  • 功能:

    把add后的参数num加给value;

    数字相加会进行算术相加;

    字符串会被拼接。

  • 语法:

    {{ value|add:"num" }}

  • 示例效果:

    1、数字相加

    2、字符串相加

join连接

  • 功能:

    以指定字符串str连接列表list中的元素,与python中的str.join(list)相似;
  • 语法

    {{ value|join }}
  • 示例效果:

    使用"// "连接列表,

    {{ value|join:" // " }}

addslashes在引号前加斜杠

  • 功能:

    在引号前面加上斜杆。例如,用于在CSV中转义字符串。
  • 语法:

    {{ value|addslashes }}

    如果value是"I'm using?Django",输出将变成"I'm using Django".
  • 示例效果:

    地址栏中的 %20表示空格;

capfirst首字母大写

  • 功能:

    大写变量的第一个字母。如果第一个字符不是字母,则该过滤器不会生效。
  • 语法:

    {{ value | capfirst }}
  • 示例效果:

title首字母大写

  • 功能:

    大写字符串中单词的第一个字母。如果第一个字符不是字母,则该过滤器不会生效。
  • 语法:

    {{ value | title}}
  • 示例效果:



当单词“1good”并不是以字母开头时,title过滤器失效。

  • 拓展:

    • upper大写过滤器,将所有字母都大写, {{ value | upper}}
    • lower大写过滤器,将所有字母都小写, {{ value | lower}}

cut切割指定字符

  • 功能:

    移除value中所有的与给出的变量相同的字符。
  • 语法:

    {{ value|cut:"str" }};str为指定移除字符。
  • 示例效果:

length求字符串或列表长度

  • 功能:

    返回字符串或列表长度;

  • 语法:

    {{ value|length}}

  • 示例效果:

  • 拓展:

    • length_is,若value的长度与width相等,则返回True;否则,返回False。

      {{ value|length_is:"width" }}

linenumbers换行加行号

  • 功能:

    当文本为多行时,为每行添加行号。返回的文本可能是一行,可以同时使用linebreaksbr换行。
  • 语法:

    {{ value|linenumbers }}
  • 示例效果:

    这里使用value='a \n b \n c',为了防止浏览器解析为一行,这里使用linebreaksbr过滤器进行换行。

    {{ value|linenumbers|linebreaksbr }}
  • 拓展:
    • linebreaksbr是一个换行过滤器,语法为:{{ value|linebreaksbr }},它替换字符串中所有的“\n”为“
      ”;
    • 例如, 。
    • linebreak也是一个换行过滤器,语法为:{{ value|linebreak }},它替换字符串中所有的“\n”为<br />,新形成的新行使用段落标签<p></p>包含。
    • 例如, "Joel\nis a slug"会被转换为 <p>Joel<br />is a slug</p>

date日期

  • 功能:

    根据给定格式,对一个date变量进行格式化。
  • 语法:

    {{ value|date:"D d M Y" }}

    • 也可以不使用格式字符串,{{ value|date }}
  • 如果value是datetime对象

    如,datetime.datetime.now(),将输出字符串'Web 09 Jan 2008'。
  • 传递的时间格式也可以是预定义的格式
    • DATE_FORMAT
    • DATETIME_FORMAT
    • SHORT_DATE_FORMAT
    • SHORT_DATET
    • 预定义的格式根于语言环境不同而有所不同。

  • 示例效果:

这里使用datetime模块中的datetime.now()函数返回时间元组,将时间元组赋值给变量value;date过滤器不使用参数,采用默认参数。

# views.py文件中
def filter_Test(request, value):
# 参数value
from datetime import datetime
value = datetime.now()
return render(request, 'filterTest.html', {'value': value})

default默认

dictsort字典排序

  • 功能:

    接收一个字典列表,并返回按参数中给出的键排序后的列表;
  • 语法:
    • {{ value|dictsort:'key' }}
#如果value为
[
{'name': 'zed', 'age': 19},
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
]
# 则经过dictsort根据键name排序后为
# {{ value|dictsort:'name' }}
[
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
{'name': 'zed', 'age': 19},
]
  • 示例效果
# 在views.py文件中
## 内置过滤器dictsort测试专用
def filter_Test(request, value):
# 参数value,传值给语法中的value
value = [
{'name': 'zed', 'age': 19},
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
]
return render(request, 'filterTest.html', {'value': value})
  • 示例效果:

可以看出,字典列表已经根据name键排序。

dictsortreversed字典逆排序

  • 功能:

    接收一个字典列表,并返回按照参数中给出的键按相反顺序排序的列表;这与上面的过滤器完全相同,但返回的值将是相反的顺序。
  • 语法:
    • {{ value|dictsortreversed:'key' }}
#如果value为
[
{'name': 'zed', 'age': 19},
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
]
# 则经过disort根据键name排序后为
# {{ value|dictsortreversed:'name' }}
[
{'name': 'zed', 'age': 19},
{'name': 'joe', 'age': 31},
{'name': 'amy', 'age': 22},
]
  • 示例效果:

    前面使用name,这里使用age

从结果上看,字典列表按照age键进行逆排序。

center字符串居中

  • 功能:

    在给定字符串宽度中,让字符串居中显示;

  • 语法:

    • {{ value|center:'width' }}
    • 例如:

      {{ "walt"|center:'10' }};则结果为

      "☐☐☐walt☐☐☐",☐为空格。
  • 示例效果:

  • 拓展:

    此外还有ljust左对齐和rjust右对齐方法,类似center。

escape转义用于HTML的字符代码

  • 功能:

    将HTML能识别到的符号转换为HTML字符代码。
  • 语法:

    {{ value|escape }}
  • 该部分未实验成功,待更新。

escapejs转义用于JavaScript字符串的字符

  • 功能:

    转义用于JavaScript字符串的字符。虽然这在HTML中是不安全的,但可以确保在使用模板生成JavaScript/JSON时避免语法错误。

  • 语法:

    {{ value|escapejs }}

  • 示例效果:

floatformat格式化显示浮点数

  • 功能:

    根据参数控制浮点数的格式化显示,舍去位数采用四舍五入。
  • 语法:
    • {{ value|floatformat:dotWidth }}
    • 参数dotWidth指定了浮点数显示的位数;
    • dotWidth默认为-1,其中负号表示当value小数点后都是0时,只显示整数部分;1表示当value小数点后有至少1位非零数时,只保留1位小数;
    • dotWidth=num,且num>0,其中表示不管value小数点后有没有非零数,保留num位小数;
    • dotWidth=num,且num<0,其中负号表示当value小数点后都是0时,只显示整数部分;1表示当value小数点后有至少1位非零数时,保留num位小数。
  • 示例效果:

    浮点数的小数点后全是0



浮点数的小数点后有非零值

safe安全模式

  • 功能:

    将字符串标记为在输出之前不需要进一步的HTML转义。当自动转义关闭时,此过滤器不起作用。
  • 语法:

    {{ value|safe }}
  • 示例效果:

总结
  1. 本文完整项目文件代码下载地址: 完整示例
  2. Django完整内置过滤器帮助文档:Django内置过滤器完整
  3. 参考文献:Django 中文文档 1.8
  4. 能力有限,欢迎指错交流;

Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档的更多相关文章

  1. Wireshark过滤器详解

    Wireshark过滤器详解 1.Wireshark主要提供两种主要的过滤器 捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获 显示过滤器:该过滤器根据指定的表达式用 ...

  2. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  3. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. python3 内置函数详解

    内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...

  5. for循环与内置方法详解

    ''' for循环与内置方法详解 ''' # 循环:重复(按照某种规律的)做一件事情 # lt = [1, 2, 3, 4] # # ind = 0 # # while True: # print(l ...

  6. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  7. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  8. Python内置方法详解

    1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名. 可以查看所有的字符串的内置方法,如: 1> count ...

  9. Asp.Net MVC学习总结之过滤器详解(转载)

    来源:http://www.php.cn/csharp-article-359736.html   一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...

  10. Django框架 之 querySet详解

    Django框架 之 querySet详解 浏览目录 可切片 可迭代 惰性查询 缓存机制 exists()与iterator()方法 QuerySet 可切片 使用Python 的切片语法来限制查询集 ...

随机推荐

  1. PHP高级教程-多维数组

    PHP 多维数组 一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组.依照这种方式,我们可以创建二维或者三维数组: 实例 <?php // 二维数组: $cars = array ( ...

  2. Linux操作系统安装与VMTools的安装

    Linux操作系统安装:虚拟机+RedHat 1.安装虚拟机VMware_WorkstationV7.1.3 2.安装RedHat 自动安装(会自动安装VMTools): 打开虚拟机-->新建虚 ...

  3. shell脚本中的几个括号总结(小括号/大括号/花括号)

    from:http://www.cnblogs.com/hanyan225/archive/2011/10/06/2199652.html 是毋庸置疑的,方便了我们也迷惑了我们,比如这些杂七杂八的括号 ...

  4. Cocos2d-x3.0 iOS 一键编译多个target并打包ipa。

    1.编写app打包为ipa的 shell脚本.将以下代码保存为app2ipa.sh. #!/bin/sh m_appPath="" m_ipaPath="" m ...

  5. eclipse to avoid the message, disable the...

      标题 CreateTime--2018年5月9日10:38:15 Author:Marydon 1.问题描述 2.问题解析 这是因为eclipse的智能提示超时引起的,将超时间调大即可,如:200 ...

  6. Android 沉浸式状态栏的三种实现方式

    沉浸式状态栏 Google从android kitkat(Android 4.4)開始,给我们开发人员提供了一套能透明的系统ui样式给状态栏和导航栏,这种话就不用向曾经那样每天面对着黑乎乎的上下两条黑 ...

  7. poi读取execl的日期

    当execl中的列为日期格式时,后台读取到是一个数字,通过如下代码可以直接读取并转换到Date类型 HSSFDateUtil.getJavaDate(cell.getNumericCellValue( ...

  8. Nginx中Laravel的配置

    server { listen 80; server_name sub.domain.com; set $root_path '/var/www/html/application_name/publi ...

  9. 推荐系统之矩阵分解及其Python代码实现

    有如下R(5,4)的打分矩阵:(“-”表示用户没有打分) 其中打分矩阵R(n,m)是n行和m列,n表示user个数,m行表示item个数 那么,如何根据目前的矩阵R(5,4)如何对未打分的商品进行评分 ...

  10. Python 随机数 random

    1. Python seed() 函数     seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数. seed( )是不能直接访问的,需要导入 random 模块,然后 ...