django学习记录之HttpResponse,Cookie

视图在接收请求并处理后,必须返回HttpResponse对象或子对象HttpresponseRedirect。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。

1.HttpResponse响应对象。

content:返回的内容

status_code:返回HTTP响应状态码

content_type:指定返回数据的MIME类型

可以直接将HttpResponse对象当做字典来设置headers

def demo_response(request):
    """
    响应函数
    :param request: HttpRequest对象,由django创建
    :return:响应
    """
    # HtppResponse有content,status_code,content_type属性
    response = HttpResponse()
    # 响应返回的内容
    # response = HttpResponse('subject python')
    # 或者
    response.content = 'aaa'
    response.status_code = 400
    # 响应头可以将HttpResponse对象当做字典进行响应头键值对的设置
    response['subject'] = 'python'
    return response

 

 

2.JsonResponse

若要返回json数据,可以使用JsonResponse来构造响应对象:

1.可以将数据转为json字符串

2.可以设置响应头Content-Type 为 application/json

def demo_response(request):
    res = {'name':'wjm','age':18}
    return JsonResponse(res)

 

 

django学习记录之HttpResponse,Cookie_第1张图片

3.redirect重定向

def demo_redirect(request):
    return redirect('/users/index/')

django学习记录之HttpResponse,Cookie_第2张图片

 

cookie

cookie:1.基于键值对的形式存储;2.浏览器的同源政策,不同域名的cookie是不能互相访问的;3.当浏览器请求某网站时,会将和该网站相关的所有cookie信息提交给该网站服务器。

设置cookie:通过HttpResponse响应对象中的set_cookie来设置:

HttpResponse.set_cookie('name',value = 'wjm',max_age = 3600)

max_age默认单位为秒,若不设置则为None

def demo_view(requset):
    response = HttpResponse('ok')
    response.set_cookie('name','wjm') # 临时cookie
    response.set_cookie('age',18,max_age=3600) # 有效期一小时
    return response

django学习记录之HttpResponse,Cookie_第3张图片

 

读取cookie

可以通过HttpRequest对象来读取本次请求携带的cookie值。

def demo_view(requset):
    # response = HttpResponse('ok')
    # response.set_cookie('name','wjm') # 临时cookie
    # response.set_cookie('age',18,max_age=3600) # 有效期一小时
    cookie1 = requset.COOKIES.get('name')
    cookie2 = requset.COOKIES.get('age')
    print(cookie1,cookie2)
    return HttpResponse('OK')
 

 

你可能感兴趣的:(django)