什么是Templates:
Django中的Templates实际上是一个个的HTML文件,与传统HTML文件的区别在于其使用了Django模板语言(Django Template Language,DTL)。Django也允许我们使用一些第三方的模板.
开发Template:
1.在APP根目录下新建一个 templates 文件夹,里面新建一个index.html
2.编辑index.html
3.在view.py中返回render()
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request,'index.html')
关于render函数:
rander()函数的第三个参数是用来传递数据到前端的,支持dict类型参数(字典,键值对)
该字典是后台传递到模板的参数,键为参数名
在模板中使用{{参数名}}来直接使用
eg:
view.py中返回键值对
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return render(request,'index.html',{'title':'welcome to my blog!!!'})
index.html 前端中使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>{{ title }}</h1>
</body>
</html>
关于同名html文件:
Django按照settings.py中INSTALLED_APP中的添加顺序查找Templates,不同APP下Templates目录下的同名html文件会造成冲突。为解决这种冲突,可在APP的Templates目录下创建以APP名为名称的目录,将html文件放在该目录下
myblog
├── blog1
│ ├── __init__.py
│ ├── admin.py
│ ├── models.py
│ ├── templates
│ │ └── blog
│ │ └── index.html
│ │
│ ├── tests.py
│ └── views.py
├── blog2
│ ├── __init__.py
│ ├── admin.py
│ ├── models.py
│ ├── templates
│ │ └── blog2
│ │ └──index.html
│ │
│ ├── tests.py
│ └── views.py
├── manage.py
└── myblog
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
设置view.py中render函数的路径
from django.shortcuts import render
def index(request):
return render(request,'blog/index.html')