Django ---- 模板
一、模板的功能
产生 html , 控制页面上展示的内容。模板文件不仅仅是一个html 文件。
模板文件包含两个部分:
1)静态内容:css,js,html。
2) 动态内容:用于动态去产生一些网页信息。通过模板语言来产生。
二、模板文件的使用
通常是在视图函数中使用模板产生html 内容返回给客户端。
a) 加载模板文件 loader.get_templates
获取模板文件中的内容,产生一个模板对象。
b)定义一个模板文件的上下文 RequeseContext
给模板文件传递数据。
c)模板渲染产生html 页面内容 render
用来传递的数据替换相应的变量,产生一个替换后的html 内容。
三、模板文件的加载顺序
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')], # 配置 templates 的路径
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
先在 settings.py 配置好 templates 的路径
1)Django 首先会先配置的模板目录下去找模板文件。
2)去INSTALLED_APPS 下面的每个应用的去找模板文件,前提是应用中必须有templates 文件夹。
四、模板语言
模板语言简称为 DTL。(Django Template Language)
1、模板变量
模板变量名是由数字,字母,下划线和点组成,不能以下划线开头。
使用模板变量:{{ 模板变量名}}
{{ book.btitle }}
模板的解析顺序:
例如:{{ book.btitle }}
1)首先把 book 当成一个字典,把 btitle 当成键名,进行取值 book[‘btitle’]
2)把 book 当成一个对象,把 btitle 当成属性,进行取值 book.btitle
3)把book 当成一个对象,把btitle 当成对象的方法 ,进行取值 book.btitle
例如:{{book.0}}
1)首先把book 当成一个字典,把0当成键名,进行取值 book[‘0’]
2)把 book 当成一个列表,把 0 当成下表,进行取值book[0]
如果解析失败,则产生内容时用空字符串填充模板变量。
使用模板变量时,前面的可能是一个字典,可以是一个对象,还可能是一个列表。