django 内置过滤器

来源:互联网 发布:php 判断整数 编辑:程序博客网 时间:2024/05/17 14:26

django 模板 内建过滤器
add {{ value | add :”2” }}

对象的加法,如果都是整数类型,简单的算术加法;如果是列表,则是列表的相加

如果无法执行对象的相加,比如整数和字符串,则返回一个空串
addslashes {{value | addslashes}}

在引号前面添加斜线,主要应用与字符转义
capfirst {{value| capfirst}}

首字符大写
center {{value|center:”15”}}

在给定的宽度里面居中
cut {{value|cut:” “}}

删除value里面所有给定的字符,这里是空格
date

根据给定的格式格式化日期
格 式字符 描述 示例输出
a ‘a.m.’ or ‘p.m.’ ‘a.m.’
A ‘AM’ or ‘PM’ . ‘AM’
b 3位小写 字符表示的月份缩写 ‘jan’
d 每个月中的某一天,两位数字(前缀0) ‘01’ to ‘31’
D 3位字符表示的星期几 ‘Fri’
e 时区 ” , ‘GMT’ , ‘-500’ , ‘US/Eastern’ , etc.
f 12小时制的时间,分为零被省略 ‘1’ , ‘1:30’
F 月份英文全程 ‘January’
g 小时,没有前缀0的12小时制表示 ‘1’ to ‘12’
G 小时,没有前缀0的24小时制表示 ‘0’ to ‘23’
h 小时,有前缀0的12小时制表示 ‘01’ to ‘12’
H 小时,有前缀0的24小时制表示 ‘00’ to ‘23’
i 分钟 ‘00’ to ‘59’
j 每个月中的某一天,数字(没有前缀0) ‘1’ to ‘31’
l 星期几的全称 ‘Friday’
L 是否是闰年 True or False
m 月份,有前缀0 ‘01’ to ‘12’
M 月份,3位字符,首字符大写 ‘Jan’
n 月份,没有前缀0 ‘1’ to ‘12’
P 时间,12小时制,分钟和上下午,分钟数为0时被省略有midnight和noon ‘1 a.m.’ , ‘1:30 p.m.’ , ‘midnight’ , ‘noon’ , ‘12:30 p.m.’
s 秒,有前缀0 ‘00’ to ‘59’
S 月份后缀 ‘st’ , ‘nd’ , ‘rd’ or ‘th’
t 每个月的天数 28 to 31
T 本机的时区 ‘EST’ , ‘MDT’
u 毫秒. 0 to 999999
w 0-6表示一周的第几天 ‘0’ (Sunday) to ‘6’ (Saturday)
W 一年中的第几个星期 1 , 53
y 年份,两位 ‘99’
Y 年份,4位 ‘1999’
z 一年中的第几天 0 to 365
default {{value|defualt:”nothing”}}

如果value为False,使用default的值
default_if_none {{value|default_if_none:”nothing”}}

如果value为None,使用default的值
dictsort {{value|dictsort:”name”}}

返回使用给出的关键字(实例中的name)对value(要求是字典)进行排序的结果
dictsortreversed

类似dictsort,返回逆序排序的结果
divisibleby {{value|divisiblely:”3”}}

是否能整除,如果是,返回True,否则返回False
escape

转义一个字符串的HTML

注意的是,这个过滤器仅当value输出时转义,所以,当有过滤器串联的时候,escape总像是最后一个过滤器,如果你想要立刻转义的话,请使用force_escape
escapejs {{value|escapejs}}

转义字符成为javascript使用的字符,如: “testing\r\njavascript \’string” escaping” , 会被转义成 “testing\u000D\u000Ajavascript \u0027string\u0022 \u003Cb\u003Eescaping\u003C/b\u003E” .
filesizeformat {{ value | filesizeformat }}

格式化一个数值成为人类可读的文件大小,如果 value 是 123456789, 将输出 117.7 MB .
first {{ value | first }}

返回列表的第一个元素
fix_ampersands

ampersands是&符号的英文,该过滤器的作用是:用&代表&
floatformat

不使用参数书,默认输出最多一位有效小数点
34.23234 {{ value|floatformat }} 34.2
34.00000 {{ value|floatformat }} 34
34.26000 {{ value|floatformat }} 34.3

使用正数参数
34.23234 {{ value|floatformat:3 }} 34.232
34.00000 {{ value|floatformat:3 }} 34.000
34.26000 {{ value|floatformat:3 }} 34.260

使用负整数参数
34.23234 {{ value|floatformat:”-3” }} 34.232
34.00000 {{ value|floatformat:”-3” }} 34
34.26000 {{ value|floatformat:”-3” }} 34.260
force_escape

强制转义
get_digit {{ value | get_digit :”2” }}

返回一个整数给定位置的数字,从右往左算

{{ value|get_digit:”2” }},如果value是123456,则返回5

iriencode {{ value | iriencode }}

iri:internationalized resource identifier(国际化资源标识符),iri 编码,把一个iri转成一个可以包含在url中的字符串,例如:如果value是?test=1&me=2,那么输出是?test=1&me=2
join {{ value | join :arg }}

用给定的参数字符拼连一个列表,类似于python的str.join(list)
last {{ value | last }}

返回列表的最后一个元素
length

返回给定值的长度,适用于字符串和列表
length_is {{ value | length_is :”4” }}

如果给定值的长度和length_is的参数一样,返回True,否则返回False
linebreaks {{ value | linebreaks }}

用合适的html替换文本中的换行,例如: Joel\nis a slug会被转

Joel
is a slug


linebreakbr {{ value | linebreaksbr }}

把文本中所有的换行替换成

linenumbers

显示文本行号
ljust

在给定的宽度里面左对齐
lower

全部转换成小写
make_list

返回被转换成列表的值
pnone2numeric {{ value | phone2numeric }}

把一个电话号码(可能包含字符)转换成 对应 的 数字(字符随便转换),如:800-COLLECT转换成800-2655328
pluralize

返回除了值为1外的该值的复数形式,默认在后面加’s’。如果不是’s’,或者其他请指定

没有参数是,复数形式加s,有1个参数时,加参数,有两个参数时,分别为单数和复数形式

You have {{ num_cherries }} cherr{{ num_cherries|pluralize:”y,ies” }}.

pprint

一个在pprint.pprint()周围的包装,仅用于debuging
random

返回列表中的随机一项
removetags

从给定的用空格隔开的(X)HTML标签列表删除参数里的标签,例如: {{ value | removetags :”b span” }},如果value是 “Joel is a slug,那么输出 Joel is a slug,注意这个过滤器是大小写敏感的
rjust

在给定的宽度里面右对齐
safe

标记说该字符串输出的时候不需要自动转义,注意的是,safe后边再接一个escape过滤器时还是会转义的,当safe过滤器在autoescape off里面是也是不起作用的
safeseq

对列表中的每一项使用safe过滤器,例如: {{ some_list | safeseq | join :”, ” }}
slice

返回一个列表的切片,参数格式和python的列表切片类似
slugify {{ value | slugify }}

转换成小写后,删除所有的非单词字符,最后把空格替换成横线

例如: Joel is a slug会输出joel-is-a-slug
stringformat {{ value | stringformat :”s” }}

字符串格式化,类似于python的字符串格式化(但是没有前导%)
striptags

去掉一切可以去掉的(X)HTML标签,注意的是,striptags并不保证输出的内容安全
time

根据给定的格式格式化时间,参数参考date过滤器

注意,只能接受有关于天的格式,而不是日期 的格式,如果你要格式化日期,请使用date过滤器
timesince {{ blog_date|timesince:comment_date }}

格式化一个日期到给定日期的时间,例如4天,6小时等等,没有参数时默认参数是now,例如: {{ blog_date|timesince:comment_date }},如果blog_date是2006年6月1日的午夜,comment_date是2006年6月1日早上8点,那么这个例子返回的是8小时

分钟是最小的单位,可以返回0分钟这样的结果
timeuntil {{ conference_date|timeuntil:from_date }}

类似timesince,加入from_date是2006年6月22,conference_date是2006年6月29,那么这个例子将返回1个星期
title { value | title }}

把一个字符串转换成首字母大写, my first post被转为 “My First Post
truncatechars

截短字符,例如 {{ value | truncatechars : 9 }},多于9的字符串会被截短, Joel is a slug会被截短为 Joel i…
truncatewords

截短单词,例如 {{ value | truncatewords : 2 }},第二个单词之后的单词会被截掉,Joel is a slug会变成 Joel is …
truncatewords_html

计算次数是,忽略html标签,比truncatewords更低效率,只应该被用于传递的html

{{ value|truncatewords_html:2 }},

Joel is a slug

输出为

Joel is …

unordered_list

递归的使用一个自嵌套的列表然后返回一个HTML unordered list(ul),例如,var= [‘States’, [‘Kansas’, [‘Lawrence’, ‘Topeka’], ‘Illinois’]],那么{{var|unordered_list}}返回的是:

  • States
    • Kansas
      • Lawrence
      • Topeka
    • Illinois

    upper

    返回大写形式
    urlencode {{ value | urlencode }}

    转义一个能在url中使用的值,例如,http://www.example.org/foo?a=b&c=d被转成http%3A//www.example.org/foo%3Fa%3Db%26c%3Dd

    可以接受参数:参数中表明那些字符不需要转义,如果不提供,/默认不转义,如果提供一个空字符串(不同于包含空格的字符串),所有字符需要被转移
    urlize {{ value | urlize }}

    转换文本中的url成为可点击的链接,例如: Check out www.djangoproject.com输出为 Check out www.djangoproject.com

    注意的是,如果文本中包含html,事情可能会有点例外,自己注意
    urlizetrunc

    先urlize文本,在truncatechars被urlize的文本,例如 {{ value | urlizetrunc : 15 }},如果value是: Check out www.djangoproject.com,那么输出是: Check out www.djangopr…
    wordcount

    返回单词的个数
    wordwrap

    在给定的宽度里面包含单词,例如: {{ value | wordwrap : 5 }},如果value是 Joel is a slug,那么输出类似是:

    Joel
    is a
    slug

    yesno

    匹配值输出yes,no,maybe或者自定义的字符等等, {{ value | yesno :”yeah,no,maybe” }}

    原创粉丝点击