一.模版的功能
产生html,控制页面上展示的内容;模版文件不仅仅是一个html文件
模版文件包含两部分内容:
1)静态内容:css,js,html
2)动态内容:用于动态去产生一些网页内容。通过模版语言来产生
二:模版文件的使用
通常是在视图函数中使用模版产生html内容返回给客户端
1)加载模版文件 loader.get template:获取模版文件的内容,产生一个模版对象
2)定义模版上下文 RequeseContext:给模版文件传递数据
3)模版渲染产生html页面内容render:用传递的数据替换相应的变量,产生一个替换后的表中html内容

三:模版文件加载顺序
1)首先去配置的模版目录下找模版文件
2)去 INSTALL_APPS 下面的每个应用的去找模版文件,前提是应用中必须有templates文件夹

四:模版语言
模版语言简称DTL(Django Template Language)
五:模版变量
模版变量是由数字,字母,下划线和点组成的,不能以下划线开头。
使用模版变量:{{.模版变量名 }}
模版变量的解析顺序:
例如:{{ book.btitle }}
1)首先把book当成一个字典,把btitle当成键名,进行取值book['btitle']
2)把book当成一个对象,把btitle当成属性,进行取值book.btitle
3)把book当成一个对象,把btitle当成对象的方法,进行取值book.btitle
如果解析失败,则产生内容时用空字符串填充模版变量
使用模版变量时,.前面的可能是一个字典,可能是一个对象,开可能是一个列表
六:模版标签
{ % 代码段 % }
for 循环:
{% for x in 列表 %}
# 列表不为空时执行
{% empty %}
# 列表为空时执行
{% endfor %}
可以通过{{ for loop.counter }} 得到for循环遍历到第几次
{% if 条件%}
{% elif 条件%}
{% else %}
{% endif %}

关系比较操作符:> < >= <= == !=
注意:进行比较操作时,比较操作符两边必须有空格
逻辑运算:not and or
七:过滤器
过滤器用于对模版变量进行操作
date:改变日期的显示格式
length:求长度。字符串,列表,元组,字典长度
default:设置模版变量的默认值
格式:模版变量|过滤器:参数

自定义过滤器
1.创建python package,名字固定叫templatetags

2.创建python文件

3.导入Library模块,创建Library对象,并装饰

4.模版文件中加载filters文件

5.使用自定义过滤器

八:模版继承

作用:重用html页面的内容
使用方式:在子模版页面中使用extends


九:html转义



网友评论