Django(十一)请求生命周期之响应内容(请求/响应 头/体)

时间:2022-09-14 19:22:10

https://www.cnblogs.com/renpingsheng/p/7534897.html

Django请求生命周期之响应内容

http提交数据的方式有"post","get","put","patch","delete","head","options","trace".

提交数据的时候,服务端依据method的不同会触发不同的视图函数.

对于from表单来说,提交数据只有get和post两种方法

另外的方法可以通过Ajax方法来提交

服务端根据个人请求信息的不同来操作数据库,可以使用原生的SQL语句,也可以使用Django的ORM语句.

Django从数据库中查询处理完用户想要的数据,将结果返回给用户.

从Django中返回的响应内容包含响应头和响应体

在Django中,有的时候一个视图函数,执行完成后会使用HttpResponse来返回一个字符串给客户端.

这个字符串只是响应体的部分,返回给客户端的响应头的部分应该怎么设置呢???

给返回给客户端的信息加一个响应头:

from django.views import View
class CBV(View):
    def dispatch(self, request, *args, **kwargs):
        print("dispatch...") # 分发之前可以做一些处理
        result = super(CBV,self).dispatch(request, *args, **kwargs) # 调用父类的dispatch
        return result

    def get(self,requset):
        return render(requset, 'cbv_form.html')

    def post(self,requset):
        ret = HttpResponse('post success')

        ret['h1'] = "v1"
        ret['h11'] = "v11"
        ret.set_cookie('c1', 'v1')
        ret.set_cookie('c2', 'v2')
        print(ret)
      print(ret.cookies)
    ''' 头: h1 = v1 h11 = v11 
      cookies : c1 = v1,c2 = v2
    
'''
    return ret

Response Headers

Content-Length: 12
Content-Type: text/html; charset=utf-8
Date: Sun, 31 Mar 2019 09:06:13 GMT
h1: v1
h11: v11
Server: WSGIServer/0.2 CPython/3.5.2
Set-Cookie: c2=v2; Path=/
Set-Cookie: c1=v1; Path=/
X-Frame-Options: SAMEORIGIN