• 解析器


    解析器

    作用

    根据请求头 content-type 选择对应的解析器对请求体内容进行处理。

    有application/json,x-www-form-urlencoded,form-data等格式

    注:一般不需要改动,项目最开始全局进行配置就行

    settings配置文件

    REST_FRAMEWORK = {
        'DEFAULT_PARSER_CLASSES':[
            'rest_framework.parsers.JSONParser'
            'rest_framework.parsers.FormParser'
            'rest_framework.parsers.MultiPartParser'
        ]
    
    }
    

    urls.py

    urlpatterns = [
        url(r'test/', TestView.as_view()),
    ]
    

    views.py

    可以通过控制parser_classes=[] 中的元素来控制该视图可以使用的解析器

    from rest_framework.views import APIView
    from rest_framework.response import Response
    
    class TestView(APIView):
        # parser_classes = [JSONParser, ] 
        def post(self, request, *args, **kwargs):
            print(request.content_type)   
       # 获取请求的值,并使用对应的JSONParser进行处理
        print(request.data)
        # application/x-www-form-urlencoded 或 multipart/form-data时,request.POST中才有值
        print(request.POST)
        print(request.FILES)
        return Response('POST请求,响应内容')
    
    def put(self, request, *args, **kwargs):
        return Response('PUT请求,响应内容')
    

    -源码流程:
    -当调用request.data的时候去执行解析方法----》根据传过来的编码方式选择一个解析器对象,调用解析器对象的parser方法完成解析

  • 相关阅读:
    form表单的应用
    HTML列表及表格的基本应用
    Linux上安装Jdk
    docker+jenkins自动发布步骤及命令
    redis集群部署实战
    mySQL中连接字符串
    mysql触发器
    sql 设置数字长度 不足时补0
    微服务架构特性
    SQLServer2008 去除换行符
  • 原文地址:https://www.cnblogs.com/9527mwz/p/11200598.html
Copyright © 2020-2023  润新知