三十八:Django之模版(templates)

一.模版的功能

产生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转义

你可能感兴趣的:(三十八:Django之模版(templates))