一、模板的组成
HTML代码+逻辑控制代码
二、逻辑控制代码的组成
1、变量(使用双大括号来引用变量)
{{var_name}}
2、标签(tag)的使用(使用大括号和百分号的组成来表示使用tag)
{% load staticfiles %}
3、过滤器(filter)的使用
{{ship_date|date:"Fj,Y"}},ship_date变量传给data过滤器,data过滤器通过使用"Fj,Y"这几个参数来格式化日期数据。"|"代表类似Unix命令中的管道操作。
官方文档查看地址:https://docs.djangoproject.com/en/1.9/ref/templates/builtins/
三、常用标签(tag)【标签特性有开始就有结束】
1、{% if %}的使用
可以使用and,or,not来组织你的逻辑。但不允许and和or同时出现的条件语句中。新版本中已经支持{% elif %}这样的用法
2、{% ifequal %}和{% ifnotequal %}的使用
比较是否相等,只限于简单的类型,比如字符串,整数,小数的比较,列表、字典、元组不支持
3、{% for %}的使用
用来循环一个list,还可以使用resersed关键字来进行倒叙遍历,一般可以用if语句来先判断一下列表是否为空,再进行遍历;还可以使用empty关键字来进行为空时候的跳转。
**for标签中可以使用forloop
a.forloop.counter 当前循环计数,从1开始
b.forloop.counter0 当前循环计数,从0开始,标准索引方式
c.forloop.revcounter 当前循环的倒数计数,从列表长度开始
d.forloop.recounter0 当前循环倒数计数,从列表长度减1开始,标准
e.forloop.first bool 值,判断是不是循环的第一个元素
f.forloop.last同上,判断是不是循环的最后一个元素
g.forloop.parentloop 用在嵌套循环中,得到parent循环的引用,然后可以使用以上的参数
4、{% cycle %} 在循环时轮流使用给定的字符串列表中的值
5、{##} 单行注释,{% comment %} 多行注释
6、{% csrf_token %} 生成csrf_token的标签,用于防止跨站攻击验证
7、{% debug %} 调用调试信息
8、{% filter%} 将filter标签固定的内容执行过滤器操作
9、{% autoescape %}自动转义设置
10、{% firstof %} 输出第一个值不等于False的变量
11、{% load %} 加载标签库
12、{% now %}获取当前时间
13、{% spaceless %} 移除空格
14、{% url %} 引入路由配置地址
15、{% verbatim %} 禁止render
16、{% with %} 使用简单的变量名缓存复杂的变量名
17、....
四、常用的过滤器(filter)
1、add
给变量加上相应的值
2、addslashes
给变量中的引号前加上斜线
3、capfirst
首字母大写
4、cut
从字符串中移除指定的字符
5、date
格式化日期字符串
6、default
如果值是False,就替换成设置的默认值,否则就使用本来的值
7、default_if_none
如果值是None,就替换成设置的默认值,否则就使用本来的值
8、dictsort
按照设定的参数(key)对应的value对列表进行排序
9、dictsortreversed
和上面正好相反
10、divisibleby
是否能够被某个数字整除,是的话返回True,否则返回False
11、escape
对字符串进行转义
12、escapejs
替换value中的某些字符,以适应JAVASCRIPT和JS
13、filesizeformat
格式化文件大小显示
14、first
返回列表中的第一个值
15、last返回列表中最后一个值
16、floatformat
格式化浮点数
17、length
求字符串或者列表长度
18、length_is
比较字符串或者列表长度
19、urlencode
一般为了安全对URL进行编码处理
20、upperlower
大写小写
21、safe
对某个变量关闭自动转义
22、slice
切片操作
23、time
格式化时间
24、timesince
格式化时间(e.g:"4 days,6hours"),格式化时间与当前时间进行比较然后返回一个相差多久的结果
25、truncatechars
按照字符截取字符串
26、truncatewords
按照单词截取字符串
27、striptags
过滤掉html标签
28、....
常见过滤器查看官方文档:https://docs.djangoproject.com/en/1.9/ref/templates/builtins/