Request(请求)
1、http协议:
(1) 客户端先请求(request),服务器后响应(response)
(2) 无连接/短链接(http):每次服务器响应后就断开。不会一直占用服务器资源,服务器不认识客户端. (TCP是长连接,持续与服务器连接)
(3) 简单快捷,对服务器压力小
(4) http的请求方式:GET.POST…
(5) http的常见状态码
(6) url:http://www.baidu.com:8888/goods/detail?id=1010&en=123
# 协议 ip\域名 端口 path地址 参数
print(request, type(request)) # 请求对象
print(request.method) # 请求方式 GET
print(request.path) # 请求路径
print(request.GET) # 接收GET请求的参数 <QueryDict: {'name': ['lisi'], 'like': ['code', 'movie']}>
print(request.POST) # 接收POST请求的参数
print(request.COOKIES) # cookies
print(request.session) # session
print(request.FILES) # 接收上传的文件 <MultiValueDict: {}>
print(request.META.get("REMOTE_ADDR")) # 客户端id
print(request.GET.get("name")) # 获取一个value
print(request.GET.getlist("like")) # 获取多个value
# QueryDict:类字典对象,可以存在相同的key
Response(响应)
return HttpResponse("ok") # 用于前后端不分离
return JsonResponse({"name": "思聪", }) # 返回Json,用于前后端分离
# Json : JsonObject,{},key-value
# JsonArray,[],列表中可以是普通数据类型,也可以是JsonObject
# JsonObject与JsonArray可以嵌套
return HttpResponseRedirect("http://www.qq.com")
# 简写 redirect()
Response错误
1、HttpResponseRedirect:301 临时重定向
2、HttpResponsePermanentRedirect:302 永久重定向
3、HttpResponseBadRequest:400 错误请求
4、HttpResponseForbidden: 403 禁止访问
5、HttpResponseNotFound: 404 页面不存在
6、 HttpResponseNotAllowed: 405 访问错误
7、HttpResponseServerError: 500 服务器错误
8、Http404: 异常 raise主动抛出异常