zoukankan      html  css  js  c++  java
  • 解析器

    解析器

    作用

    根据请求头 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方法完成解析

  • 相关阅读:
    二维数组展示到DataGridView(c#)
    发送请求获取响应内容(c#)
    重建freescale 4.6.2 multilib toolchain
    [raspberry pi3] raspberry 充当time machine
    sublime ctags
    lua遍历文件
    pthread中如何追踪stack over flow
    Core Dump
    2 plan team 服务器搭建
    mac上编译 arm linux gnueabi交叉编译工具链toolchain
  • 原文地址:https://www.cnblogs.com/9527mwz/p/11200598.html
Copyright © 2011-2022 走看看