http与请求响应
- drf在django的原有基础上新增了一个request对象集成daol到了APIView类中,在原有的HttpResponse响应类上实现子类rest_framework.response.Response
- 都是基于内容协商完成数据格式转换
![]()
![]()
- request的常用操作
-
获取请求参数 可以通过request.GET获取GET请求的参数,
request.POST获取POST请求的参数,
request.FILES获取文件上传请求的文件,
request.data获取请求的数据,
request.query_params获取所有请求参数的字典
。获取请求头 可以通过request.META获取请求头信息,比如获取User-Agent,可以使用 request.META.get('HTTP_USER AGENT')。
获取请求方法 可以使用request.method获取请求的方法,比如GET、POST等。
获取请求路径 可以使用request.path获取请求的路径。
获取请求IP地址 可以使用request.META.get('REMOTE_ADDR')获取请求的IP地址。
获取请求用户 可以通过request.user获取请求用户的信息,如用户名、ID等。
获取请求的URL 可以使用request.build absolute uri()获取请求的完整URL。
获取请求的Referer 可以使用request.META.qet('HTTP REFERER')获取请求的Referer信息。
获取请求的Session 可以使用request.session获取请求的Session信息,
获取请求的Cookie 可以使用request.COOKIES获取请求携带的Cookie信息。 - Response的常用
- 状态码,使用rest_framework中的status模块
- data:返还数据信息
- header:头部信息
- content_type:返回格式类型(一般不用)
-
def get(self, request): print(f"request={request}") # 常用响应状态码 # drf中的Response是django的HTTPResponse的子类 return Response({"msg": "ok"}, status=status.HTTP_401_UNAUTHORIZED, # content_type="application/json"纯html文本 content_type="text/html", # 渲染出来的调试太页面 headers={"company": "astro"}) # 给header添加头部信息


浙公网安备 33010602011771号