分享

06 请求模块:request对象

 小仙女本仙人 2021-06-28

源码入口:APIView类的dispatch方法中

request = self.initialize_request(request, *args, **kwargs)


class Test(APIView):
    def get(self, request, *args, **kwargs):
        # url拼接的参数
        print(request._request.GET)  # 二次封装方式
        print(request.GET)  # 兼容
        print(request.query_params)  # 拓展,兼容性最强
        return Response('drf get ok')

    def post(self, request, *args, **kwargs):
        # # 所有请求方式携带的数据包
        print(request._request.POST)  # 二次封装方式
        print(request.POST)  # 兼容
        print(request.data)  # 拓展,兼容性最强,三种传参方式都可以:form-data,urlencoding,json
        return Response('drf post ok')

总结

  1. drf对原生request做了二次封装,设置request._request等于原生request

  2. 原生request对象的属性和方法都可以被drf的request对象直接访问(兼容)

  3. drf请求的所有url拼接参数均被解析到query_params中,所有数据包数据都被解析到data中

  • get请求:url中拼接的参数通过 request.query_params获取

  • post请求:所有请求方式所携带的数据包都是通过 request.data获取

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约