视图在接收请求并处理后,必须返回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)
3.redirect重定向
def demo_redirect(request):
return redirect('/users/index/')
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
读取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')