简要
路由映射着视图函数,当路由被访问后,就会到视图函数来处理请求, 当视图函数处理完请求后返回给客户端浏览器来响应,所以视图函数起着承上启下的作用。 在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'})
本文含有隐藏内容,请 开通VIP 后查看