Django模板过滤器
Django模板引擎提供了过滤器,用于转换变量和标签参数的值。我们已经讨论了主要的Django模板标签。标签不能修改变量的值,而过滤器可以用来增加变量的值或根据自己的需要进行修改。
语法
{{ variable_name | filter_name }}
过滤器可以是 “链式 “的。一个过滤器的输出被应用于下一个。{{ text|escape|linebreaks }}是一个常见的习惯,用于转义文本内容,然后将换行符转换为
标签。
示例
{{ value | length }}
如果值是[‘a’, ‘b’, ‘c’, ‘d’] , 输出将是4。
Django中的主要模板过滤器
这篇文章围绕着在项目中可以使用的各种Django模板过滤器。过滤器可以转换变量和标签参数的值。让我们来看看一些主要的过滤器。
add | addslashes | capfirst |
---|---|---|
center | cut | date |
default | dictsort | divisibleby |
escape | filesizeformat | first |
join | last | length |
linenumbers | lower | make_list |
random | slice | slugify |
time | timesince | title |
unordered_list | upper | wordcount |
1.add
它被用来向值添加一个参数。
示例
{{ value | add:"2" }}
如果值是4,那么输出将是6。这个过滤器是用来增加django模板中的一个变量的。
2.addslashes
它用于在引号前添加斜线。对CSV中的字符串的转义很有用。
示例
{{ value | addslashes }}
如果值是 “I’m Jai”,输出将是 “I\’m Jai”。
3.capfirst
它用于将值的第一个字符大写。如果第一个字符不是一个字母,这个过滤器就没有作用。
示例
{{ value | capfirst }}
如果值是 “Jai”,输出将是 “Jai”。
4.center
它用于在一个给定宽度的字段中使数值居中。
示例
"{{ value | center:"15" }}"
如果值是 “Jai”,输出将是 “Jai”。
5.cut
它用于从给定的字符串中删除arg的所有值。
示例
{{ value | cut:" " }}
如果值是 “带空格的字符串”,输出将是 “带空格的字符串”。
6.date
它用于根据给定的格式来格式化一个日期。
示例
{{ value | date:"D d M Y" }}
如果value是一个日期时间对象(例如,datetime.datetime.now()的结果),输出将是字符串 “Thu 06 Feb 2020″。欲了解更多信息和模式,请访问这里。
7.default
它被用来给一个变量一个默认值。如果变量的评估值为False,它将使用给出的默认参数,否则就是变量值本身。
示例
{{ value | default:"nothing" }}
如果值是””(空字符串),输出将是空的。
8.dictsort
它接收一个字典的列表,并返回按参数中给出的键排序的列表。
示例
{{ value | dictsort:"name" }}
如果值是。
[
{'name': 'zed', 'age': 19},
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
]
那么输出将是。
[
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
{'name': 'zed', 'age': 19},
]
9.divisibleby
如果该值能被参数整除,则返回 “真”。
示例
{{ value | divisibleby:"3" }}
如果值为21,则输出为True。
10.escape
它被用来对一个字符串的HTML进行转义。具体来说,它进行这些替换。
< is converted to <> is converted to >
' (single quote) is converted to '
" (double quote) is converted to "
& is converted to &
示例
{{ title | escape }}
11.filesizeformat
它用于将该值格式化为 “人类可读 “的文件大小(即 “13 KB”、”4.1 MB”、”102字节”,等等)。
示例
{{ value | filesizeformat }}
如果值是123456789,输出将是117.7MB。
12.first
它用于返回一个列表中的第一个项目。
示例
{{ value | first }}
如果value是列表[‘a’, ‘b’, ‘c’],输出将是’a’。
13.join
它用于用一个字符串连接一个列表,就像 Python 的 str.join(list) 一样。
示例
{{ value | join:" // " }}
如果value是列表[‘a’, ‘b’, ‘c’],输出将是字符串 “a / b / c”。
14.last
它用于返回一个列表中的最后一个项目。
示例
{{ value | last }}
如果value是列表[‘a’, ‘b’, ‘c’, ‘d’],输出将是字符串 “d”。
15.length
它用于返回值的长度。这对字符串和列表都有效。
示例
{{ value | length }}
如果值是[‘a’, ‘b’, ‘c’, ‘d’]或 “abcd”,输出将是4。
16.linenumbers
它用于显示带有行号的文本。
示例
{{ value | linenumbers }}
如果值是。
one
two
three
输出将是。
1. one
2. two
3. three
17.lower
它用于将一个字符串转换为全小写。
示例
{{ value | lower }}}
如果值是My Name is Jai ,输出将是My Name is Jai。
18.make_list
它用于返回变成列表的值。对于一个字符串,它是一个字符列表。对于一个整数,在创建一个列表之前,参数被转换为一个字符串。
示例
{{ value | make_list }}
如果值是字符串 “Naveen”,输出将是列表[‘N’, ‘a’, ‘v’, ‘e’, ‘e’, ‘n’] 。如果值是123,输出将是列表[‘1’, ‘2’, ‘3’]。
19.random
它用于从给定的列表中返回一个随机项目。
示例
{{ value | random }}
如果value是列表[‘a’, ‘b’, ‘c’, ‘d’],输出可能是 “b”。
20.slice
它用于返回列表的一个片断。
示例
{{ some_list | slice:":2" }}
如果some_list是[‘a’, ‘b’, ‘c’],输出将是[‘a’, ‘b’]。
21.slugify
它是用来转换为ASCII的。它将空格转换为连字符,并删除不是字母数字、下划线或连字符的字符。转换为小写。还会剥离前导和尾部的空白。
示例
{{ value | slugify }}
如果值是 “Jai is a slug”,输出将是 “jai-is-a-slug”。
22.time
它用于根据给定的格式对时间进行格式化。
示例
{{ value | time:"H:i" }}
如果值等同于datetime.datetime.now(),输出将是字符串 “01:23″。
23.timesince
它用于将一个日期格式化为该日期以来的时间(例如,”4天6小时”)。
示例
{{ blog_date | timesince:comment_date }}
如果blog_date是一个代表2006年6月1日午夜的日期实例,而comment_date是一个代表2006年6月1日08:00的日期实例,那么下面会返回 “8小时”
24.title
它用于将一个字符串转换为标题大写,使单词以大写字符开始,其余字符为小写。这个过滤器没有努力将 “琐碎的单词 “保持在小写。
示例
{{ value | title }}
如果值是 “我的第一篇文章”,输出将是 “我的第一篇文章”。
25.unordered_list
它用于递归地获取一个自嵌套的列表,并返回一个HTML无序列表–没有打开和关闭<ul></ul>
标签。
示例
{{ var | unordered_list }}
如果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>
</li>
26.upper
它用于将一个字符串转换为所有大写字母。
示例
{{ value | upper }}
如果值是 “Jai是个鼻涕虫”,输出将是 “JAI是个鼻涕虫”。
27.wordcount
它用于返回字数。
示例
{{ value | wordcount }}
如果值是 “jai is a slug”,输出将是4。