语法
变量
双括号
判断
使用大括号+%
if xx
xx
else
xx
endif
ifequal athlete.name coach.name xx else xx endifequal
for athlete in athlete_list xx endfor
for key, value in data.items endfor
循环中使用的变量
forloop.counter
总是一个表示当前循环的执行次数的整数计数器。
这个计数器是从1开始的,所以在第一次循环时 forloop.counter 将会被设置为1。
forloop.counter0
类似于 forloop.counter ,但是它是从0计数的。 第一次执行循环时这个变量会被设置为0。
forloop.revcounter
是表示循环中剩余项的整型变量。 在循环初次执行时 forloop.revcounter 将被设置为序列中项的总数。 最后一次循环执行中,这个变量将被置1。
forloop.revcounter0
类似于 forloop.revcounter ,但它以0做为结束索引。在第一次执行循环时,该变量会被置为序列的项的个数减1。
forloop.first
是一个布尔值。 在第一次执行循环时该变量为True。
forloop.last
是一个布尔值;在最后一次执行循环时被置为True。一个常见的用法是在一系列的链接之间放置管道符(|)
另一个常见的用途是为列表的每个单词的加上逗号。
forloop.parentloop
是一个指向当前循环的上一级循环的 forloop 对象的引用(在嵌套循环的情况下)。
模板过滤器
数字过滤器
apnumber
对于 1 到 9 的数字,该过滤器返回了数字的拼写形式。 否则,它将返回数字。 这遵循的是美联社风格。
intcomma
该过滤器将整数转换为每三个数字用一个逗号分隔的字符串。
intword
该过滤器将一个很大的整数转换成友好的文本表示方式。 它对于超过一百万的数字最好用。
最大支持不超过一千的五次方(1,000,000,000,000,000)。
ordinal
该过滤器将整数转换为序数词的字符串形式。
时间过滤器
date
date:“Y-m-d H:i:s”
其他
lower
小写
my_text|escape|linebreaks
串联:先转义文本到HTML,再转换每行到
标签
bio | truncatewords:"30"
显示前30个字
123|add:"5"
给value加上一个数值
"AB'CD"|addslashes
单引号加上转义号,一般用于输出到javascript中
"abcd"|capfirst
第一个字母大写
"abcd"|center:"50"
输出指定长度的字符串,并把值对中
"123spam456spam789"|cut:"spam"
查找删除指定字符串
value|date:"F j, Y"
格式化日期
value|default:"(N/A)"
值不存在,使用指定值
value|default_if_none:"(N/A)"
值是None,使用指定值
列表变量|dictsort:"数字"
排序从小到大
列表变量|dictsortreversed:"数字"
排序从大到小
if 92|divisibleby:"2"
判断是否整除指定数字
string|escape
转换为html实体
21984124|filesizeformat
以1024为基数,计算最大值,保留1位小数,增加可读性
list|first
返回列表第一个元素
"ik23hr&jqwh"|fix_ampersands
&转为&
13.414121241|floatformat
保留1位小数,可为负数,几种形式
13.414121241|floatformat:"2"
保留2位小数
23456 |get_digit:"1"
从个位数开始截取指定位置的1个数字
``list|join:", " ` 用指定分隔符连接列表
list|length
返回列表个数
if 列表|length_is:"3"
列表个数是否指定数值
"ABCD"|linebreaks
用新行用
、
标记包裹
"ABCD"|linebreaksbr
用新行用
标记包裹
变量|linenumbers
为变量中每一行加上行号
"abcd"|ljust:"50"
把字符串在指定宽度中对左,其它用空格填充
for i in "1abc1"|make_list
把字符串或数字的字符个数作为一个列表
"abcdefghijklmnopqrstuvwxyz"|phone2numeric
把字符转为可以对应的数字??
列表或数字|pluralize
单词的复数形式,如列表字符串个数大于1,返回s,否则返回空串
列表或数字|pluralize:"es"
指定es
列表或数字|pluralize:"y,ies"
指定ies替换为y
object|pprint
显示一个对象的值
列表|random
返回列表的随机一项
string|removetags:"br p div"
删除字符串中指定html标记
string|rjust:"50"
把字符串在指定宽度中对右,其它用空格填充
`` 列表|slice:":2" ` 切片
string|slugify
字符串中留下减号和下划线,其它符号删除,空格用减号替换
3|stringformat:"02i"
字符串格式,使用Python的字符串格式语法
"E<A>A</A>B<C>C</C>D"|striptags
剥去[X]HTML语法标记
时间变量|time:"P"
日期的时间部分格式
datetime|timesince
给定日期到现在过去了多少时间
datetime|timesince:"other_datetime"
两日期间过去了多少时间
datetime|timeuntil
给定日期到现在过去了多少时间,与上面的区别在于2日期的前后位置。
datetime|timeuntil:"other_datetime"
两日期间过去了多少时间
"abdsadf"|title
首字母大写
"A B C D E F"|truncatewords:"3"
截取指定个数的单词
"<a>1<a>1<a>1</a></a></a>22<a>1</a>"|truncatewords_html:"2"
截取指定个数的html标记,并补完整
list|unordered_list
多重嵌套列表展现为html的无序列表
string|upper
全部大写
link|urlencode
url编码
string|urlize
将URLs由纯文本变为可点击的链接。(没有实验成功)
string|urlizetrunc:"30"
同上,多个截取字符数。(同样没有实验成功)
"B C D E F"|wordcount
单词数
"a b c d e f g h i j k"|wordwrap:"5"
每指定数量的字符就插入回车符
boolean|yesno:"Yes,No,Perhaps"
对三种值的返回字符串,对应是 非空,空,None