一: 模板的组成
HTML代码+逻辑控制代码
二:逻辑控制代码的组成
1.变量(使用双大括号引用变量)
{{ var_name }}
2.标签(tag)的使用(使用大括号和百分号的组成来表示使用tag)
{% load staticfiles %}
过滤器(filter)的使用
{{ ship_date|date:"F j,Y" }},ship_date变量传给date过滤器,date过滤器通过使用"F j, Y"这几个参数来格式化日期数据。“|”代表类似的unix命令中的管道操作。
三:常用标签(tag)
标签名 | 作用 | 注意事项 | 扩展语法 |
---|---|---|---|
if | 条件控制 | 必须以endif标签结束 | if..elif..else;表达式支持:==, !=, <, >, <=, >=, and, or, not, in |
for..in.. | 循环遍历 | 必须以endfor标签结束 | ++参见for标签内建变量++ |
for..in.. reversed | 反向循环遍历 | 必须以endfor标签结束 | |
for..in..empty.. | 单独指定空的时候的操作 | 必须以endfor标签结束 | |
cycle | 循环时周期性的遍历可迭代对象的每个元素 | ||
with | |||
url | |||
verbatim | |||
date | |||
load | |||
firstof | |||
spaceless | |||
autoescape | |||
filter | |||
debug | |||
csrf_token |
for循环内建变量
属性 | 含义 |
---|---|
forloop.counter | 当前的循环计数(从1到length) |
forloop.counter0 | 当前的循环计数(从0到length-1) |
forloop.revcounter | 当前循环的倒数计数(从length 到 1) ---变得是计数,内容还是不变的 |
forloop.revcounter0 | 当前循环的倒数计数(从length-1 到 0)---变得是计数,内容还是不变的 |
forloop.first | 返回一个Bool值,是不是循环的第一个 |
forloop.last | 返回一个Bool值,是不是循环的最后一个 |
forloop.parentloop | 对于嵌套循环,给出父循环的计数 |
四:常用过滤器
名称 | 作用 | 注意事项 | 扩展语法 |
---|---|---|---|
add | 给变量加上相应的值 | 首先强制转换成Int类型,失败则(字符串, 列表, 等等.) 转换失败输出空字符串 | |
addslashes | 在引号前面加上斜杠 | ||
capfirst | 首字母大写 | ||
cut | 移出指定字符 | ||
date | 根据给定格式对一个 日期 变量格式化 | ||
time | 根据给定格式对一个 时间 变量格式化 | ||
timesince | 格式化时间???? | ||
default | 如果值是False则替换成设置的默认值 | ||
default_if_none | 如果值是False则替换成设置的默认值 | ||
dictsort | 按照字典中的指定key对字典进行排序 | ||
dictsortreversed | 和上面正好相反 | ||
divisibleby | 值能否被指定数字整除 | 结果是Bool类型 | |
escape | 对字符串进行转义 | ||
safe | 与上一个相反,对某个变量关闭自动转义 | ||
escapejs | 替换字符串中的部分值以适应javascript和json | ||
filesizeformat | 讲数字转换成可读的文件大小格式 | ||
first | 返回列表中的第一个值 | ||
last | 返回列表中的最后一个值 | ||
floatformat | 格式化浮点数 | ||
length | 字符串或者列表的长度 | ||
urlencode | 对url进行编码处理 | ||
upper\lower | 大写\小写 | ||
slice | 切片操作 | ||
truncatechars | 按照字符截取字符串 | ||
truncatewords | 按照单词截取字符串 | ||
striptags | 过滤掉html标签 | ||
。。。 |
模板和继承
包含:
{% include %} 允许在模板中包含其它模板的内容
标签的参数可以是:模板名称、变量、字符串
{% include 'nav.html'%}
{% include 'app/nav.html'%}
{% include template_name'%}
继承:
1 {% block %} 定义块
2 {% extend %} 继承父模板