DTL 使用
render() 函数中支持一个 dict 类型参数,该字典是后台传递到模板的参数,键为参数名。在模板中使用 {{参数名}} 来直接使用。
编写 Template
1. 在应用的根目录下创建名叫 Templates 的目录
2. 在该目录下创建 index.html 文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!-- 这里的 violet 对应的就是 views.py 里 render() 方法第三个参数的键-->
<h6>{{ violet }}</h6>
</body>
</html>
3. 在应用的 views.py 中返回 render()
from django.shortcuts import render #通过 render 把页面渲染到浏览器
def index(request):
return render(request, 'index.html', {'violet': 'Hello, Violet!'}) #一共有三个参数,第三个传递的数据
Django 查找 Template
按照 INSTALLED_APPS 中的添加顺序查找 Templates ,不同应用下 Templates 目录中的同名 .html 文件会造成冲突。
解决:
1. 在应用的 Templates 目录下创建以应用名为名称的目录,将 html 文件放入新创建的目录下。
2. 然后再改一下 views.py 中 render() 方法里页面的引用路径
from django.shortcuts import render
def index(request):
return render(request, 'violet/index.html', {'violet': 'Hello, Violet!'})
网页的访问路径不变,上面只是让程序自己确定一下是要渲染哪个页面。