简要
路由映射着视图函数,当路由被访问后,就会到视图函数来处理请求,
当视图函数处理完请求后返回给客户端浏览器来响应,所以视图函数起着承上启下的作用。
在django中有视图函数和视图类来处理请求,这里先学习基本的视图函数。
学习视图函数:基本结构、内部功能、返回。
基本结构
### 基本结构
def view_func(request):
# 在这里你可以处理请求
return HttpResponse # 在这里返回响应对象
### 举例(仅供了解结构):
def login(request):
if request.method = "POST"
get_user = request.POST.get('user')
get_psd = request.POST.get('psd')
context = {
'user':get_user,
'psd':get_psd,
}
return render(request,'index.html',context} # render() -> HttpResponse
内部功能
### 在这里只列举常用、部分、简单的功能方法实现,具体的还需要看对应专题深入学习
### reuqest对象
## request对象本质上是WSGIRequest对象
from django.core.handlers.wsgi import WSGIRequest(自行查看)
## request对象的实例属性
request.method # 获取请求方法
request.path # 获取请求路径
## request对象的实例方法
# 因为使用了property属性化,所以调用时不用加括号
request.GET -> QueryDict # get请求
request.POST -> QueryDict # post请求
request.COOKIES -> dict # 请求中的COOKIE
## session
request.session[key] = value # 设置session
request.session.get(key) request.session[key] # 获取session
del request.session[key] # 删除session
# 其他而更多session的操作将在session小节学习
## cookie
request.COOKIES.get(key) # 获取cookie
### response对象
## django中的response对象实现类是:
HttpResponse
## 导入HttpResponse:
from django.shortcuts import HttpResponse
from django.http import HttpResponse
## cookie修改
response.set_cookie(key,value) # 设置cookie
response.delete_cookie(key) # 删除cookie
返回
### 首先要铭记返回一定是一个响应对象,即HttpResponse对象或其子类对象
### HttpResponse对象
## 导入:
from django.shortcut import HttpResponse
## 举例:
return HttpResponse("hello")
return HttpResponse("<h1>hello</h1>")
### html模板:通过render()
## 导入:from django.shortcuts import render
## render(request, template_name, context=None, content_type=None, status=None, using=None)
request:请求对象
template_name:str,模板名称
context:dict,上下文,作用于模板的数据
## 举例
return render(request,"my.html",context={'key':'value'})
### 重定向
## 重定向:跳转到其他路由来处理请求
## 在这里我们就可以应用url别名了
## 导入
from django.shortcuts import redirect,reverse
## 举例
return rendirect(reverse('url_name'))
### JsonResponse对象
## 导入:
from django.http import JsonResponse
## 举例:
return JsonResponse({'name':'joden'})