8.模板标签与过滤器

一: 模板的组成

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 %} 继承父模板

你可能感兴趣的:(8.模板标签与过滤器)