模板作用:
模板致力于表达外观而不是程序逻辑,实现业务逻辑view与现实内容Template的分离,一个视图可使用任意模板,一个模板也可供多个视图使用
简而言之,django能够单独分开python和HTML,而让python代码变量进入视图和HTML页面
模板包含两个部分:
(1)静态部分—HTML,css、JavaScript,常见的HTML页面编写
(2)动态部分—模板语言。对于django模板语言定义在django.template,创建项目后settings.py文件定义了关于模板的配置,通常是在项目的根目录下创建template目录
处理模板一般分两个阶段:
(1) 加载模板: 根据给定的路径找到模板文件,并编译后存放到内存中
(2) 渲染: 使用上下文数据对模板插入数据值并返回生成字符串,可直接使用django提供的render()调用模板
模板语言:
模板语言作用:计算并输出到HTML中, 变量名必须由字母, 数字, 下滑线和点组成, 不能以下划线开头
基本语法: {
{ 变量名 }}
模板引擎遇到点(.)的顺序解析
第一步: 当做字典book[‘name’]处理,并获取值
第二步: 先属性后方法,即将book当做对象,先查找属性name, 如果没有,在查方法,name()
第三步: 如果格式为book.0,则解析为book[0]
如果变量不存在,则插入空字符串,
注意: 若在模板中调用方法则不能传递参数
views.py
def show_values(request):
# 对象
books=BookInfo()
books.bname="如何成为更好的自己"
books.bpage=532
# 字典
dicts={
"name":"老王","like":"喜欢呆在隔壁..."}
# 列表
datas=["python程序","python is easy","MySQL重入门到放弃"]
return render(request,"book/show_values.html",{
"books":books,"dicts":dicts,"datas":datas})
urls.py
url(r"^show_values",show_values),
template目录下.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板变量</title>
</head>
<body>
<h1>显示模板变量:</h1>
<h2>显示对象内容:书名: