如何向请求者返回一个漂亮的页面呢?
肯定需要html,css,如果想要加入更炫酷的效果还要加入js,问题来了,这么一堆字符串全部都要写到视图中,作为Httpresponse()的参数吗?这样定义是非常麻烦的,应为定义字符串是不会出现任何效果和错误,那么就需要我门的模板了。
在Django中,将前端的内容定义在模板中,然后再把模板交给视图,各种漂亮的,炫酷的效果就会出现了。
1.配置模板的目录
为应用news下的视图的视图index创建模板index.html,在项目目录下新键一个名为tamplates的文件夹,在该文件下面新建一个和应用同名的文件加,结构目录如下:
设置查找模板的路径
:打开settings.py文件,设置TEMPLATES的Dlrs值
'DIRS': [ BASE_DIR / 'templates'],
2.定义模板
# 在视图函数中使用模板文件
def list2(request):
"""放回模板的视图"""
# 1.通过模型去查询数据
datas = newTnfo.objects.all()
# 获取查询到的第一条新闻信息
item = datas[0]
info = {
"title": item.title,
"content": item.content,
"b_date": item.b_date,
"read": item.read
}
return render(request, 'news/list.html', info)
总结:
模板的配置和使用步骤:
1.在项目目录下创建一个templates文件夹
2.在setting.py中TEMPLATES选项中配置项目模板的根路径
'DIRS': [BASE_DIR / 'templates'],
3.在templates中创建和应用同名的文件夹
4.在templates中创建和应用同名的文件夹,中创建html模板页面
5.在views.py中定义视图函数,并返回HTML页面
6.配置路由访问规则