前言
  • 基本环境

    • 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之表单-2(表单验证)

    PHP 表单验证 本章节我们将介绍如何使用PHP验证客户端提交的表单数据. PHP 表单验证 在处理PHP表单时我们需要考虑安全性. 本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们 ...

  2. PyQt5教程——事件和信号(5)

    PyQt5中的事件和信号 在这部分PyQt5编程教程中,我们探索应用中事件和信号的发生. 事件 所有的GUI应用都是事件驱动的.事件主要由应用的用户操作产生的.但是事件可能由其他条件触发,比如:一个网 ...

  3. angular.foEach

    1.针对对象循环(key,value) 官方示例: var values = {name: 'misko', gender: 'male'}; var log = []; angular.forEac ...

  4. win7 mtp

    Sensors MTP Monitor Service 允许MTP设备数据传输,如果该服务被禁用,MTP监视器将不能工作.该服务的默认运行方式是手动,如果你没有使用MTP设备,该功能就可以放心禁用.  ...

  5. SIT与UAT的分别

    在企业级软件的测试过程中,经常会划分为三个阶段——单元测试,SIT和UAT,如果开发人员足够,通常还会在SIT之前引入代码审查机制(Code Review)来保证软件符合客户需求且流程正确.下面简单介 ...

  6. 对TCP性能的考虑

    #xiaodeng #对TCP性能的考虑 #HTTP权威指南 86 #对TCP性能的考虑 #HTTP紧挨着TCP,位于其上层.所以HTTP事务的性能很大程度上取决于底层tcp通道的性能. #4.2.1 ...

  7. newInstance() 的参数版本与无参数版本

    通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance()  以下对两种调用方式给以比较说明: Class.newInstance ...

  8. centos7 卸载 gitlab

    标黑的就是关键命令,先停止gitlab服务,然后rpm -e卸载,然后查看剩余gitlab进程,然后杀死主进程,然后删除所有相关目录 1 [liuyx@MiWiFi-R3L-srv ~]$ sudo ...

  9. 搭建Weblogic服务器

    安妮,我的小熊熊在ne....... 01.安全设置 service iptables stop chkconfig iptables off    #关闭防火墙,只是建议,为了简便操作 setenf ...

  10. 微信小程序条码、二维码生成模块

    代码地址如下:http://www.demodashi.com/demo/13994.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...