Django常用内置过滤器
1.add
此过滤器将首先尝试将两个值强制为整数。如果失败,它会尝试将值一起添加。这将工作在一些数据类型(字符串,列表等)和失败在其他人。如果失败,结果将是一个空字符串。
{{ value | add:"" }} # 如果value等于1,展示效果为2
{{ val1 | add:val2 }} # 如果val1为[1,2],val2为[3,4],展示效果为[1,2,3,4]
2.center
将值置于给定宽度的字段中。
{{ value | center:"" }} # 如果value为hello,展示效果为" hello "
3.cut
从给定字符串中删除arg的所有值。
{{ value | cut:"a" }} # 如果value为"haha lala",展示效果为"hh ll"
4.date
根据给定的格式设置日期
{{ value | date:"Y-m-d H:i:s" }} # 如果value为时间对象,展示效果为把时间对象格式化为2019-01-17 10:04:25
日期可用格式字符串介绍:
|
格式字符 |
描述 |
示例输出 |
|---|---|---|
|
a |
|
|
|
A |
|
|
|
b |
月,文字,3个字母,小写。 |
|
|
B |
未实现。 |
|
|
c |
ISO 8601格式。 (注意:与其他格式化程序,如“Z”,“O”或“r”不同,如果值是一个天真的datetime(见 |
|
|
d |
月的日期,带前导零的2位数字。 |
|
|
D |
星期几,文字,3个字母。 |
|
|
e |
时区名称。可以是任何格式,或可能返回一个空字符串,具体取决于datetime。 |
|
|
E |
月,特定于语言环境的替代表示,通常用于长日期表示。 |
|
|
f |
时间,12小时小时和分钟,如果他们为零,分钟将关闭。专有扩展。 |
|
|
F |
月,文字,长。 |
|
|
g |
小时,12小时格式,不含前导零。 |
|
|
G |
小时,24小时格式,无前导零。 |
|
|
h |
小时,12小时格式。 |
|
|
H |
小时,24小时格式。 |
|
|
i |
分钟。 |
|
|
I |
夏令时,无论是否生效。 |
|
|
j |
没有前导零的月份日。 |
|
|
l |
星期几,文字,长。 |
|
|
L |
是否为闰年的布尔值。 |
|
|
m |
月,2位数字,前导零。 |
|
|
M |
月,文字,3个字母。 |
|
|
n |
没有前导零的月。 |
|
|
N |
月缩写在Associated Press风格。专有扩展。 |
|
|
o |
ISO-8601周编号年,对应于使用闰年的ISO-8601周编号(W)。更常见的年份格式见Y。 |
|
|
O |
与格林威治时间的差值(以小时为单位)。 |
|
|
P |
时间,12小时制,分钟和’a.m。’/’p.m。’,如果它们为零,分钟将关闭,如果合适,分钟将保留特殊字符串’午夜’和’中午’。专有扩展。 |
|
|
r |
RFC 5322 格式的日期。 |
|
|
s |
秒,带前导零的2位数。 |
|
|
S |
每月日期的英文序数后缀,2个字符。 |
|
|
t |
指定月份的天数。 |
|
|
T |
本机的时区。 |
|
|
u |
微秒。 |
|
|
U |
自Unix时代以来的秒数(1970年1月1日00:00:00 UTC)。 |
|
|
w |
星期几,没有前导零的数字。 |
|
|
W |
ISO-8601年的周数,周从星期一开始。 |
|
|
y |
年,2位数。 |
|
|
Y |
年,4位数。 |
|
|
z |
一年中的一天。 |
|
|
Z |
时区偏移(以秒为单位)。 UTC之前的时区的偏移总是负的,并且对于UTC的东部的偏移总是正的。 |
|
5.default
如果值的计算结果为 False,则使用给定的默认值。否则,使用该值。
{{ value | defult:"Nothing at all" }} # 如果value是""(空字符串),展示后面的默认值"Nothing at all",否则展示value的值
6.default_if_none
如果(且只有)值是 None,使用给定的默认值。否则,使用该值。
注意,如果给出一个空字符串,默认值将使用 not。如果要回退空字符串,请使用 default过滤器
{{ value | default_if_none:"nothing" }} # 如果 value 是 None,则展示字符串 "nothing",否则展示value的值
7.dictsort
获取字典列表,并返回该列表按参数中给出的键排序。
{{ value | dictsort:"name" }}
# 如果value是:
[
{'name': 'zed', 'age': 19},
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
]
# 输出结果:
[
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
{'name': 'zed', 'age': 19},
]
dictsort还可以通过指定索引处的元素来排序列表(或任何其他实现 __getitem__() 的对象)的列表。
{{ value | dictsort:0 }} # 这里0作为索引必须是整数不是字符串
# 如果 value 是:
[
('a', ''),
('c', 'string'),
('b', 'foo'),
]
# 那么输出将是:
[
('a', ''),
('b', 'foo'),
('c', 'string'),
]
8.dictsortreversed
获取字典列表,并返回按照参数中给出的键按相反顺序排序的列表。这与上面的过滤器完全相同,但返回的值将是相反的顺序。
9.fileseizeformat
将该值格式化为“人类可读”文件大小(即 '13 KB','4.1 MB','102 bytes' 等)。
{{ value | filesizeformat }} # 如果 value 是123456789,则展示的是 117.7 MB
文件大小和SI单位
严格地说,filesizeformat 不符合国际单位制度,其建议使用KiB,MiB,GiB等,当字节大小以1024的幂(这是这里的情况)计算时。相反,Django使用对应于更常用名称的传统单位名称(KB,MB,GB等)。
10.floatformat
当不带参数时,将一个浮点数舍入到小数点后一位,但前提是要显示一个小数部分。例如:
|
|
模板 |
输出 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
如果与数字整数参数一起使用,则 floatformat 将数字四舍五入到该小数位数。例如:
|
|
模板 |
输出 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
特别有用的是传递0(零)作为参数,它将使float浮动到最接近的整数。
|
|
模板 |
输出 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
如果传递给 floatformat 的参数为负,则它将一个数字四舍五入到这个小数位,但前提是要显示一个小数部分。例如:
|
|
模板 |
输出 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
使用没有参数的 floatformat 等同于使用具有 -1 参数的 floatformat。
11.join
使用字符串连接列表,如Python的 str.join(list)
{{ value | join:" // " }} # 如果 value 是列表 ['a', 'b', 'c'],则展示的是字符串 "a // b // c"
12.length
返回值的长度。这适用于字符串和列表
{{ value | length }} # 如果 value 是 ['a', 'b', 'c', 'd'] 或 "abcd",展示的是4,过滤器为未定义的变量返回 0
13.lower
将字符串转换为全部小写
{{ value | lower }} # 如果value是"Hello"则展示的是"hello"
14.upper
将字符串转换为全大写
{{ value | upper }} # 如果 value 是"hello",展示的是"HELLO"
15.make_list
返回转换为列表的值。对于字符串,它是一个字符列表。对于整数,在创建列表之前将参数强制转换为unicode字符串
{{ value | make_list }} # 如果value是字符串"la",展示的就是列表["l", "a"],如果value是数12,展示的就是列表[1, 2]
16.random
返回给定列表中的随机项
{{ value|random }} # 如果value的值为[1, 2 , 3],展示的可能就是2,列表随机取
17.truncatechars
如果长度大于指定的字符数,则截断字符串。截断的字符串将以可翻译的省略号序列(“...”)结束
{{ value | truncatechars:2 }} # 如果value是"hello",那么展示的就是"he..."
18.truncatewords
在一定数量的字后截断字符串
{{ value | truncatewords:2 }} # 如果value的值是"gmx is pig",展示的就是"gmx is ..."
19.wordcount
返回字数
{{ value | wordcount }} # 如果value是"gmx is pig",展示的就是3
详情参考链接https://docs.djangoproject.com/en/1.7/ref/templates/builtins/
Django常用内置过滤器的更多相关文章
- angular中常用内置过滤器
<!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta ...
- Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档
前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. ...
- Asp.Net Core MVC框架内置过滤器
第一部分.MVC框架内置过滤器 下图展示了Asp.Net Core MVC框架默认实现的过滤器的执行顺序: Authorization Filters:身份验证过滤器,处在整个过滤器通道的最顶层.对应 ...
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- request.setCharacterEncoding 和常用内置对象 跳转
1.直接转码 new String(name.getBytes("ISO8859_1"),"GBK") 2. request.setCharactorEncod ...
- apache shiro内置过滤器 标签 注解
内置过滤器 anon(匿名) org.apache.shiro.web.filter.authc.AnonymousFilter authc(身份验证) org.apache.shiro ...
- JavaScript常用内置对象(window、document、form对象)
由于刚开始学习B/S编程,下面对各种脚本语言有一个宏观的简单认识. 脚本语言(JavaScript,Vbscript,JScript等)介于HTML和C,C++,Java,C#等编程语言之间.它的优势 ...
- ASP.NET常用内置对象
ASP.NET 常用内置对象:Response对象.Request对象.Session对象.Server对象.Application对象 1.Response对象: (1) 用于向浏览器输出信息 常用 ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
随机推荐
- 51Nod 1067 Bash游戏 V2 | 博弈论 Bash
n的数据范围非常大,所以不能用标准SG函数 找规律 #include "iostream" #include "cstdio" using namespace ...
- C11性能之道:转移和转发
1.move C++11中可以将左值强制转换为右值,从而避免对象的拷贝来提升性能.move将对象的状态或者所有权从一个对象转移到另一个对象,没有内存拷贝.深拷贝和move的区别如图: 从图可以看出,深 ...
- 冒泡排序Bubble sort
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子 ...
- async和await关键词用于定义原生的协程
#python为了将语义变得更加明确,就引入了async和await关键词用于定义原生的协程 # async def downloader(url): # return "xxxx" ...
- Spring mvc详解(山东数漫江湖)
Spring mvc框架 Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活.松散耦合的 web 应用程序的组件.MVC 模式导致了应用程序的不同方面(输入逻辑.业务 ...
- Can you answer these queries?(HDU4027+势能线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 题目: 题意:n个数,每次区间更新将其数值变成它的根号倍(向下取整),区间查询数值和. 思路:易 ...
- java 错误: 找不到或无法加载主类解决方法
1.配置好jdk与jre环境变量路径 https://www.cnblogs.com/xch-yang/p/7629351.html 2.在编译和运行的时候需要注意如下格式.
- 首行缩进css
html首行缩进2字符,可以使用CSS属性中的[text-indent]进行设置. 设置代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- javascript中null与undefined的区别
1.null null是一个对象,表示一个空对象指针,typeof(null)返回object,null参与运算时会转化为0,将对象初始化为null,可以知道变量是否保存了对象的引用 2.undefi ...
- LCD实验学习笔记(五):MMU
内存管理分别页表机制和内存分配机制两块. 页表机制就是管理设备真实物理地址与虚拟地址的动态或静态的映射,基于cpu内部的mmu(内存管理单元)进行. CP15(协处理器)的C0(缓存)是一级页表,含4 ...