Django模板
Django中的模板相当于传统MVC模式中的V,而在Django的MVT中,模板是T。在传统的前后端不分离的开发形式中,Django的模板是非常有用的,但是在今天前后端分离的大环境下,Django模板基本没有什么用处。
模板能够从视图返回的HttpResponse中获取数据,然后处理数据,进行显示。
创建模板
如果需要使用Django的模板,那么通常在manage.py的同级目录下创建目录templates文件夹,然后在该文件夹下创建Django APP相对应的文件夹,例如:
代码语言:javascript复制templates/
└── book
├── index.html
book目录下存放着book APP相应的模板文件。
配置模板路径
在项目的settings.py文件中有一个TEMPLATES配置选项,可以在其中配置模板路径。例如:
代码语言:javascript复制TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / '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',
],
},
},
]
在视图函数中返回模板
代码语言:javascript复制from django.shortcuts import render
def index(request):
# return HttpResponse("请求成功")
# render函数有三个参数
# 第一个参数是请求
# 第二个参数是模板文件
# 第三个参数是模板渲染的数据,例如下面的context
context = {}
context["name"] = "欢迎您访问本网站"
return render(request, 'book/index.html', context) # 返回模板文件
模板文件(HTML文件)
代码语言:javascript复制<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>INDEX</title>
</head>
<body>
<p>{{ name }}</p> <!--{{}}里面写上视图函数中的context的键即可,这样就能获取键所对应的值-->
</body>
</html>
重新运行项目,然后刷新网页,就会看到如下图所示的内容:
如果需要基于Django开发前后端不分离的项目,那么还是必须得学习jinja2的语法,Django的模板语法和jinja2基本一致。关于模板的使用现在基本不是Django的重点,了解即可。