[TOC]
视图模板文件的加载
使用普通的字符串django.http.HttpResponse
之前使用的就是,
return HttpResponse("一些html的操作")
,不再赘述
响应网页视图(需要会用)
Django的模板存储位置是固定的===templates
- 在子模块下创建一个templates文件夹,用来储存html的样式。(尽量把不同子模块的样式储存在不同的文件夹内)
- 在视图处理函数中,我们重新定义返回函数
#导入一个解析模板的loader对象
from django.template import loader
def view2(request):
#使用loader加载界面,注意路径问题
#loader会自动去templates文件夹下查询页面
#temp为一个模板对象
temp = loader.get_template("blog/login.html")
#context是上下文参数,是以字典形式传递参数
context = {"msg":"你好啊,请登录"}
#把内容渲染到模板对象上
return HttpResponse(temp.render(context,request))
同时还需要在login.html中加入{{msg}}(即mustache语法)使得context内容加载到网页中
网页视图快捷操作方式(重点)
通过响应对象渲染返回的网页,功能非常强大,但是编码略显复杂。Django框架作为一个功能强大的web框架,不会让开发人员做大量重复的工作,所以已经将HTML网页的渲染返回进行了快捷的处理,方便了开发人员的使用。
#引入需要的render对象
from django.shortcuts import render
def view3(request):
#render函数可以将视图快速返回
return render(request,"blog/login.html",{"msg":"这是快捷方式的操作"})
在主目录下模板的加载
- 在主目录下创建一个存放模板文件(html文件)的目录。
- 把这个目录的路径告诉setting文件中的修改TEMPLATE中的内容,
'DIR':os.path.join(BASE_DIR,temp)
temp为主目录下存放模板文件的文件夹名称
注:模板文件的加载顺序:先扫描主目录,再扫描子模块,即主目录和子模块中都有模板文件时,子模块的模板文件不生效
静态文件的加载
子模块下
- 在子模块下,创建一个static来存储静态文件(static中可以包括css、js、img)
- 在js中包含app和lib
* app存放自己创建的文件
* lib存放第三方文件,如:bootstrap、jquery
- 在模板文件中(template中的html文件)导入css或者js
主目录下(和子模块同级)
和子模块类似,唯一不同的是:在setting配置文件中的末尾对静态文件的位置进行配置
STATICFILES_DIRS = [
os.path.join(BASE_DIR,"static"),
]