Django drf解析器

源码流程

  1. 本质
  • 请求头
  • 状态吗
  • 请求方法
  1. 源码流程
  • dispatch : request封装
  • request.data

使用

  1. 局部
from rest_framework.parsers import JSONParser, FormParser
class ParserView(APIView):
    parser_classes = [JSONParser]
    """
    JSONParser: 表示只能解析 application/json 请求头
    FormParser: 表示只能解析 application/x-www-form-urlencoded 请求头
    """
    def post(self, request, *args, **kwargs):
        """
        允许用户发送JSON格式的数据
            a. content-type: application/json
            b. {"name": 'alex', "age": 18}
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        """
        1. 获取用户请求
        2. 获取用户请求体
        3. 根据用户请求头和 parser_classes = [JSONParser, FormParser] 中支持的请求头进行比较
        4. JSONParser对象中去请求体
        5. request.data
        """
        print(request.data)
        return HttpResponse('JSON测试')
  1. 全局
# 全局使用
REST_FRAMEWORK = {
"DEFAULT_PARSER_CLASSES":  ["rest_framework.JSONParser", "rest_framework.FormParser"]
}

你可能感兴趣的:(Django drf解析器)