zoukankan      html  css  js  c++  java
  • 06 请求模块:request对象

    请求模块:request对象

    源码入口: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获取
  • 相关阅读:
    运维岗春招--part2
    python 题库|刷题
    leetcode刷题
    运维面经汇总
    python自动化运维阅读笔记
    Python编程汇总
    old_boy 运维学习-第一期
    团队博客作业-Week3
    个人对final发布产品的排名
    各组对final发布产品的排名
  • 原文地址:https://www.cnblogs.com/LYPZX/p/14068058.html
Copyright © 2011-2022 走看看