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 一年中的第几个星期 153
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" <b>escaping</b>", 会被转义成"testing\\u000D\\u000Ajavascript \\u0027string\\u0022 \\u003Cb\\u003Eescaping\\u003C/b\\u003E".

filesizeformat{{ value|filesizeformat }}

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

first{{ value|first }}

返回列表的第一个元素

fix_ampersands

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

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&amp;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会被转<p>Joel<br />is a slug</p>

linebreakbr{{ value|linebreaksbr }}

把文本中所有的换行替换成<br />

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是"<b>Joel</b> <button>is</button> a <span>slug</span>,那么输出Joel <button>is</button> 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 }},<p>Joel is a slug</p>输出为<p>Joel is ...</p>

unordered_list

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

<li>States
<ul>
        <li>Kansas
        <ul>
                <li>Lawrence</li>
                <li>Topeka</li>
        </ul>
        </li>
        <li>Illinois</li>
</ul>
</li>

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 <a href="http://www.djangoproject.com" rel="nofollow">www.djangoproject.com</a>

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

urlizetrunc

先urlize文本,在truncatechars被urlize的文本,例如{{ value|urlizetrunc:15 }},如果value是:Check out www.djangoproject.com,那么输出是:Check out <a href="http://www.djangoproject.com" rel="nofollow">www.djangopr...</a>

wordcount

返回单词的个数

wordwrap

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

Joel
is a
slug

yesno

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

p

时间: 2024-10-12 03:54:36

django 模板 内建过滤器的相关文章

django 模板 内建标签

django 内建标签 autoescape 控制当前自动转义的行为,有on和off两个选项 {% autoescape on %} {{ body }} {% endautoescape %} block 定义一个子模板可以覆盖的块,在模板中(上一节)有使用示例 comment 注释,{% comment %} 和 {% endcomment %}之间的内容被解释为注释 crsf_token 一个防止CSRF攻击(跨站点请求伪造)的标签 cycle 循环给出的字符串或者变量,可以混用 {% f

django模板 内建标签

autoescape 控制当前自动转义的行为,有on和off两个选项 {% autoescape on %} {{ body }} {% endautoescape %} block 定义一个子模板可以覆盖的块,在模板中(上一节)有使用示例 comment 注释,{% comment %} 和 {% endcomment %}之间的内容被解释为注释 crsf_token 一个防止CSRF攻击(跨站点请求伪造)的标签 cycle 循环给出的字符串或者变量,可以混用 {% for o in some

Django 模板中 变量 过滤器 标签 的使用方法

一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的时候,查找的顺序是什么样子呢?        a.字典查找,例如:foo["var1"]        b.属性查找,例如:foo.bar        c.方法查找,例如:foo.bar()        d.list-index查找,例如foo[bar] 注意:方法查找比一般的查找要复杂一些 (1

Django模板之自定义过滤器/标签/组件

自定义步骤: 1.     在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.     在app应用中创建templatetags模块包(模块名只能是templatetags) 3.     创建任意 .py 文件,如:my_tags.py ·   导入模块:from django import template ·   实例化注册器:register = template.Library()   #register的名

django 内建标签和过滤器参考

下面的标签和过滤器参考就是为那些没有 admin 站点的可用的人准备的.由于 Django 是高度可定制的,你的 admin 里的关于标签和过滤器的参考可以认为是最可信的. 内建标签参考 block 定义一个能被子模板覆盖的 块. 参阅 模板继承 了解更多信息 comment 注释.模板引擎会忽略掉 {% comment %} 和 {% endcomment %} 之间的所有内容. cycle 在循环时轮流使用给定的字符串列表中的值. 在一个循环中, 在循环过程中的每次循环里轮流使用给定的字符串

Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档

前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. 本文完整项目文件代码下载地址:完整示例 Django完整内置过滤器帮助文档:Django内置过滤器完整版 参考文献:Django 中文文档 1.8 内置过滤器 注意:所有带参数的过滤器,在使用时,冒号:和参数中间不能有空格. add加 功能: 把add后的参数num加给value: 数字相加会进行算

Django内建模版标签和过滤器

第四章列出了许多的常用内建模板标签和过滤器.然而,Django自带了更多的内建模板标签及过滤器.这章附录列出了截止到编写本书时,Django所包含的各个内建模板标签和过滤器,但是,新的标签是会被定期地加入的. 对于提供的标签和过滤器,最好的参考就是直接进入你的管理界面.Django的管理界面包含了一份针对当前站点的所有标签和过滤器的完整参考.想看到它的话,进入你的管理界面,单击右上角的Documentation(文档)链接. 内建文档中的“标签和过滤器”小节阐述了所有内建标签(事实上,本附录中的

Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

阅读目录(Content) 模板语法之变量 模板之过滤器 default length filesizeformat date slice truncatechars safe 模板之标签 自定义标签和过滤器 模板继承 (extend) 模板语法之include 前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 4 def current_dat

Django模板语言-Filters(过滤器)

Filters(过滤器) 在Django的模板语言中,通过使用 过滤器 来改变变量的显示. 过滤器的语法: {{ value|filter_name:参数 }} 使用管道符"|"来应用过滤器. 例如:{{ name|lower }}会将name变量应用lower过滤器之后再显示它的值.lower在这里的作用是将文本全都变成小写. 注意事项: 过滤器支持“链式”操作.即一个过滤器的输出作为另一个过滤器的输入. 过滤器可以接受参数,例如:{{ sss|truncatewords:30 }}