第几天,3字母的字符串. 'Fri'
f 时间, 12-小时制的小时和分钟数, 如果分钟数为零,则不显示.(django 扩展). '1', '1:30'
F 月份, 长文本格式. 'January'
g 小时, 12-小时制,没有前导零 '1' to '12'
G 小时, 24-小时制,没有前导零 '0' to '23'
h 小时, 12-小时制,有前导零 '01' to '12'
H 小时, 24-小时制,有前导零 '00' to '23'
i 分钟. '00' to '59'
I 未实现
j 每月第几天, 无前导零 '1' to '31'
l 每周第几天,长文本格式. 'Friday'
L 是否闰年. True or False
m 数字表示的月份,有前导零. '01' to '12'
M 月份,3字母短文本格式. 'Jan'
n 数字表示的月份,无前导零 '1' to '12'
N 出版风格的月份缩写(django 扩展) 'Jan.', 'Feb.', 'March', 'May'
O 与格林威治的时间差(以小时计) '+0200'
P 12小时制的小时分钟及'a.m.'/'p.m.' 分钟数若为零则不显示. 用字符串表示特殊 的时间点, 如 'midnight' 和 'noon' (django扩展) '1 a.m.', '1:30 p.m.', 'midnight','noon', '12:30 p.m.'
r RFC 822 格式的日期 . 'Thu, 21 Dec 2000 16:01:07+0200'
s 秒数, 带有前导零的数字表示 '00' to '59'
S 英语序数后缀,用于一个月的第几天,2个字符 'st', 'nd', 'rd' or 'th'
t 给定月共有多少天. 28 to 31
T 本机时区. 'EST', 'MDT'
U 未实现
w 一周中的第几天,没有前导零的数字 '0' (Sunday) to '6' (Saturday)
W ISO-8601 一年的第多少星期数, 一周从 星期一开始 1, 23
y Year, 2 位数字表示 '99'
Y Year, 4 位数字表示 '1999'
z 一年中的第几天 . 0 to 365
Z 以秒计的时区偏移量. 这个偏移量对UTC西部 时区总是负数,而对UTC东部时区则总是正数 -43200 to 43200
日期格式化参数
#safe Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。
后端:
value = "<a href='https://www.cnblogs.com/suguangti/'>点我</a>"
前端:
{{ value }}
{{ value|safe }}
结果:
<a href='https://www.cnblogs.com/suguangti/'>点我</a>
点我
下面那个‘点我’在页面上是一个a标签,点击可跳转
上面的safe是在前端取消转义,后端取消转义方法如下:
from django.utils.safestring import mark_safe
xxx = mark_safe('<h1>我是h1标签</h1>')
#truncatechars 如果字符串字符多于指定的字符数量,那么会被截断,截断的剩余字符将用省略号结尾表示。 参数:截断的字符数(包含三个点)
后端:
ss = 'abcdefghijklmnopqrstuvwxyz'
前端:
{{ ss|truncatechars:10 }}
结果:(注意...也算进长度里了)
abcdefg...
#truncatewords 以一个单词为一个元素,单词与单词之间的空格为区分依据,将一定数量的单词进行截断,截断后面的用...表示 一个单词加上一个空格 计数一个
后端:
sss = "Life was like a box of chocolates you never know what you're gonna get."
前端:
{{ sss|truncatewords:7 }}
显示结果:
Life was like a box of chocolates ... (注意chocolates后面有个空格)
#cut 移除变量中所有的指定相同的字符串
{{ value|cut:' ' }}
后端:
ssss = 'you do bb now,bb is not good thing, why do you bb for too many times!'
前端:
{{ ssss|cut:'bb' }}
显示结果:
you do now, is not good thing, why do you for too many times!
#join 将列表中的元素用指定字符连接起来
后端
ll = [1, 2, 3, 4, 5]
前端
{{ ll|join:'@' }}
结果
1@2@3@4@5
标签介绍: #for循环(内部有个empty判断,详见下面if判断示例)
后端
ll = [1, 2, 3, 4, 5]
前端
{% for foo in ll %}
<p>{{ foo }}</p>
{% endfor %}
结果显示:
1
2
3
4
5
forloop的使用:
后端
ll = [1, 2, 3, 4, 5]
前端
{% for foo in ll %}
<p>{{ forloop }}</p>
{% endfor %}
forlop里面有几个属性需要我们注意,比如 counter0,counter,first,last它们对应的值在for循环过程中的开始和结束是不一样的 #if 判断
{% for foo in l %}
if else
{% if flag %}
<p>flag不为空</p>
{% else %}
<p>flag是空</p>
{% endif %}
{#(l = ['a', 'b', 'c', 'd', 'e'])#}
{% for foo in l %}
{% if forloop.first %}
<p>这是我的第一次</p>
{% elif forloop.last %}
<p>这是最后一次了啊</p>
{% else %}
<p>嗨起来!!!</p>
{% endif %}
{% empty %} <!--如果l = [],上面的for循环不会进行,只会走这一步-->
<p>你给我的容器类型是个空啊,没法for循环</p>
{% endfor %}
l = ['a', 'b', 'c', 'd', 'e']
这是我的第一 |