输出变量的时候,还支持使用过滤器,来对数据进行初级过滤,格式是:
}
比如一个变量,当它有值的时候,就输出当前值,没有值的时候,就输出默认值:
使用default
设置默认值:
}
default只要是空都会认为没有。我们还可以使用default_if_none
来进行处理
}
}
}
get_digit
可以获取变量中的数字,指定get_digit的值的话,可以获取倒数第几个数字。如:
}
}
}
}
}
}
使用length
输出长度:
}
如果 value 是 [‘a’, ‘b’, ‘c’, ’d’],那么输出是 4。
divisibleby
可以判断一个变量是否可以被整除,如:
}
}
}
}
}
}
date
可以格式化时间:
}
注意,这个value必须是time.Time类型,不是时间戳,如果是时间戳它会报错的。时间戳要么在控制器将它转成time.Time类型,要么就使用我们自定义的模板函数:
}
truncatechars
、truncatewords
字符串字符、单词多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“…”)结尾:
}
}
截断除了字符串截断truncatechars
,还支持按单词截断truncatewords
truncatechars_html
、truncatewords_html
功能类似truncatechars
、truncatewords
。但是这这2个标签用来处理截取html中的字符串,它不会破坏html结构。一个是按字符截取,一个是按单词截取。截断的字符串将以可翻译的省略号序列(“…”)结尾:
}
}
upper
、lower
可以对单字进行大小写转换:}
}
capfirst
可以实现句子首字母大写效果,如:
}
cut
可实现删除变量中特定的字符。如:
}
}
add
可以对要输出的内容进行追加。相当于golang中的+
,数字则会相加后输出结果,字符串则会拼接在一起。如:
}
}
}
}
addslashes
则会在指定的预定义字符前添加反斜杠。这些字符是单引号(’)、双引号(”)、反斜线(\)与NUL(NULL字符)。如:
}
}
title
标签可以实现句子中每一个单词的首字母都变成大写,并将其余部分变成小写,用于格式化标题的输出。如:
}
}
}
yesno
yesno用于验证一个变量是否有效,它可以定义三种结果,三种结果分别用英文逗号,
隔开,有效值、无效值、不知道类型。如果不定义,也可以留空。如:}
}
striptags
striptags 类似PHP的strip_tags函数,可以剥去字符串中的 HTML、XML 以及 PHP 的标签。该标签始终会剥离 HTML 注释。如:}
}
removetags
标签可以删除指定的html标签。如:
}
pluralize
标签可以判断一个变量是否是复数。如:
customer}
customer}
customer}
cherr}
cherr}
cherr}
walrus}
walrus}
walrus}
random
可以随机输出集合中的一个值。如:
<p>}</p>
first
、last
可以用于输出变量中的最开始一个字符和最后一个字符。如:
}
}
urlencode
urlencode标签可以对变量进行url百分号编码。如:
}
linebreaksbr
、linebreaks
两个标签都可以将变量的值中的换行符变成<br/>
,相当于PHP的nl2br
函数。如:
}
}
}
}
length_is
length_is可以判断变量的值的长度。只能判断字符串,数字是不行的。如:
}
integer
、float
标签可以将变量的值转换成整数、浮点数。如:
}
}
}
}
}
floatformat
标签可以将变量的值按浮点数格式保留指定小数点,默认只保留以为,如果末位是0,则不保留小数点。如果指定小数点后位数,则按指定位数显示。如:
}
}
}
}
}
}
}
}
join
可以将一个数组按给定的分隔符合并在一起成为字符串。如:
}
split
刚好和join
相反,它可以将一个字符串按给定的分隔符将一个字符串转换成数组。如:}
stringformat
可以将数字、字符串格式化成指定的格式输出。相当于fmt.Sprintf()
。如:
}
}
}
make_list
可以将字符串按字符拆分成数组,相当于[]rune(“你好啊”)
。如:}
},
center
这个标签比较有意思,可以将字符串格式化成指定长度,并将字符串放在中间,旁边使用空格填充。如果给定的长度小于字符串长度,则不会做改变。如:
’}’
‘}’
}
ljust
、rjust
这两个标签和center
差不多,都是给字符串填充到指定长度,但是填充方向不同。ljust
会在右边填充空格,即让字符串靠左。rjust
会在左边填充空格,即让字符串靠右。如:
’}’
}
‘}’
}
wordcount
用来统计字符串的长度。它有2种使用方式,一种是在字符串后面,另一种是使用 filter 标签。如:
}
wordwrap
可以将字符串按给定的长度换行。如:
}
<pre></pre>
}
urlize
会自动给url、邮箱添加上a标签,并自动增加nofollow的rel。这个用来处理文章正文比较合适。urlize还支持设置true和false,用来说明显示的连接内容是否转义。如:
<p>}</p>
<p>}</p>
<p>}</p>
<p></p>
<p>Please mail me at demo@example.com or visit mit on:</p>
<p>- lorem ipsum http://www.kandaoni.com lorem ipsum</p>
<p>- lorem ipsum lorem ipsum</p>
<p>- lorem ipsum lorem ipsum</p>
<p>- lorem ipsum www.kandaoni.com lorem ipsum</p>
<p>- lorem ipsum www.kandaoni.com/test=“test” lorem ipsum</p>
<p></p>
<p></p>
<p>- lorem ipsum www.kandaoni.com/test=“test” lorem ipsum</p>
<p></p>
urlizetrunc
的作用和urlize
差不多,都是自动给url、邮箱添加上a标签,但是可以设置截取显示部分url内容,超过指定长度部分使用…
代替。如:
<p></p>
<p>Please mail me at demo@example.com or visit mit on:</p>
<p>- lorem ipsum http://www.kandaoni.com lorem ipsum</p>
<p>- lorem ipsum lorem ipsum</p>
<p>- lorem ipsum lorem ipsum</p>
<p>- lorem ipsum www.kandaoni.com lorem ipsum</p>
<p>- lorem ipsum www.kandaoni.com/test=“test” lorem ipsum</p>
<p></p>
escapejs
会将字符串按\uxxxx
编码预设的部分字符。如:}
slice
可以对字符串、数组进行截取指定长度的数据。如:}
}
}
}
safe
Django的模板中会对HTML标签和JS等语法标签进行自动转义,这样是为了安全,防止xss攻击。
如果不想用转义,就使用safe
来声明要输出的内容是安全的,它就不会自动转义,也可以使用autoescape
标签来控制开启和关闭自动转义:
用safe关闭自动转义
}
强制开启自动转义
}
强制关闭自动转义,相当于使用了safe
}
escape
escape 还可以进行声明转义。由于默认已经会自动转义,因此在此使用escape的话,会形成转义2次。因此使用autoescape off
关闭转义后,再使用escape就等于直接输出。如:
}
相当于
}
上面所有的filter 标签,都可以使用内容
来使用。比如:
This is a nice test; let’s see whether it works. Foobar. }
This is a nice test; let’s see whether it works. Foobar. }
<p></p>
<p>- lorem ipsum www.kandaoni.com/test=“test” lorem ipsum</p>
<p></p>
上一篇: 安企CMS#其他辅助标签#
下一篇: 安企CMS#通用标签-定义变量赋值标签#