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