Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档
前言 |
- 基本环境
- Django版本:1.11.8
- Python版本:3.6
- OS: win10 x64
- 本文摘要
- 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能、语法、代码和效果示例。
- 本文完整项目文件代码下载地址:完整示例
- Django完整内置过滤器帮助文档:Django内置过滤器完整版
- 参考文献:Django 中文文档 1.8
内置过滤器 |
注意:所有带参数的过滤器,在使用时,冒号:和参数中间不能有空格。
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}}
- upper大写过滤器,将所有字母都大写,
cut切割指定字符
- 功能:
移除value中所有的与给出的变量相同的字符。 - 语法:
{{ value|cut:"str" }}
;str为指定移除字符。 - 示例效果:
length求字符串或列表长度
功能:
返回字符串或列表长度;语法:
{{ value|length}}
示例效果:
- 拓展:
- length_is,若value的长度与width相等,则返回True;否则,返回False。
{{ value|length_is:"width" }}
- length_is,若value的长度与width相等,则返回True;否则,返回False。
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>
。
- linebreaksbr是一个换行过滤器,语法为:
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默认
功能:
如果value的计算结果为False,则使用给定的默认值;否则,使用该value值。语法:
{{ value|default:"指定默认内容" }}
value为""(空字符串)或None
{{ value|default:"nothing" }}
输出为nothing。示例效果:
url方法
参见:利用Django中的url方法实现地址动态拼接自动生成超链接地址
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 }}
- 示例效果:
总结 |
- 本文完整项目文件代码下载地址: 完整示例
- Django完整内置过滤器帮助文档:Django内置过滤器完整
- 参考文献:Django 中文文档 1.8
- 能力有限,欢迎指错交流;
Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档的更多相关文章
- Wireshark过滤器详解
Wireshark过滤器详解 1.Wireshark主要提供两种主要的过滤器 捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获 显示过滤器:该过滤器根据指定的表达式用 ...
- python基础-内置函数详解
一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...
- JavaWeb学习----JSP内置对象详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- python3 内置函数详解
内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小. # 如果参数是复数,则返回其大小. >>> abs(-25) 25 >&g ...
- for循环与内置方法详解
''' for循环与内置方法详解 ''' # 循环:重复(按照某种规律的)做一件事情 # lt = [1, 2, 3, 4] # # ind = 0 # # while True: # print(l ...
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- 序列内置方法详解(string/list/tuple)
一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...
- Python内置方法详解
1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名. 可以查看所有的字符串的内置方法,如: 1> count ...
- Asp.Net MVC学习总结之过滤器详解(转载)
来源:http://www.php.cn/csharp-article-359736.html 一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...
- Django框架 之 querySet详解
Django框架 之 querySet详解 浏览目录 可切片 可迭代 惰性查询 缓存机制 exists()与iterator()方法 QuerySet 可切片 使用Python 的切片语法来限制查询集 ...
随机推荐
- PHP高级教程-邮件
PHP 发送电子邮件 PHP 允许您从脚本直接发送电子邮件. PHP mail() 函数 PHP mail() 函数用于从脚本中发送电子邮件. 语法 mail(to,subject,message,h ...
- 触发器二(DML触发器)(学习笔记)
DML触发器(语句触发器) 由DML语句进行触发,当用户执行了INSERT,UPDATE,DELETE操作时就会触发操作 示例一.只有在每个月的10日才允许办理,新员工入职与离职,其他时间不允许增加和 ...
- geoip+php演示样例:通过ip,获取国家名称和代码
GeoIP + PHP的使用 方法一: 下载 GeoIP 的 PHP 文件geoip.inc,保存为 geoip.inc.php http://sjolzy.cn/php/GeoIP/bak/geoi ...
- SQLAlchemy数据类型
- 图说十大数据挖掘算法(一)K最近邻算法
如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:“菠萝”!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图 ...
- vue 源码 断点调试
1.添加sourceMap sourceMap: true 2.npm run dev 会生成vue.js.map 3.断点调试 <!DOCTYPE html> <html> ...
- Tomcat启动时选择加载项目
到tomcat\conf\Catalina\localhost下新建文件:myapp.xml 内容如下: <Context path="/myapp" docBase=&qu ...
- SwaggerUI+SpringMVC——构建RestFul API的可视化界面
今天给大家介绍一款工具,这个工具眼下可预见的优点是:自己主动维护最新的接口文档. 我们都知道,接口文档是非常重要的,可是随着代码的不断更新,文档却非常难持续跟着更新,今天要介绍的工具,完美的攻克了这个 ...
- spring mvc对异步请求的处理
在spring mvc3.2及以上版本增加了对请求的异步处理,是在servlet3的基础上进行封装的. 1.修改web.xml <?xml version="1.0" enc ...
- VC2012编译CEF3-转
原文地址:http://blog.csdn.net/tiplip/article/details/42047815 下载 代码下载:http://cefbuilds.com/,CEF 3.2556.1 ...