7:Django-DRF-解析器和渲染器

解析器和渲染器

解析器的作用:

解析器的作用就是服务端接收客户都安传来的数据,把数据解析成自己想要的数据类型。

本质就是对请求进行解析。

在了解解析器之前~大家要先知道Accept以及ContentType请求头。

Accept是告诉对方我能解析什么样的数据,通常也可以表示我想要什么样的数据。

ContentType是告诉对方我给你的是什么样的数据类型。

那大家想一下,解析器工作原理的本质应该是什么~~~~~

就是拿到请求的ContentType来判断前端给我的数据类型是什么,然后我们去拿相应的解析器去解析数据。

Django的解析器

我们请求进来请求体中的数据在request.body中,那也就证明,解析器会把解析好的数据放入request.body

案例使用

全局解析器:

settings:

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

局部解析器:

不进行全局文件配置,在指定视图中添加解析器

parser_classes = [JSONParser,FormParser]

豁免:

# 不适用解析器
parser_classes = []

view:

from rest_framework.views import APIView
from rest_framework.parsers import JSONParser,FormParser
class Test(APIView):
    # 使用解析器
    parser_classes = [JSONParser,FormParser]
	    
    def get(self,request):
        return HttpResponse(‘ok‘)
    def post(self,request):
        print(request.data)
        return HttpResponse(‘post‘)

渲染器

渲染器其实就是帮助我们友好的展示数据

使用案例:

全局渲染器:

settings:

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (
        'rest_framework.renderers.JSONRenderer',
        'rest_framework.renderers.BrowsableAPIRenderer',
    )
}

局部渲染器:

 renderer_classes = [JSONRenderer]

豁免:

 renderer_classes = []
posted @ 2021-06-17 15:40  IT小码农!!!!  阅读(59)  评论(0)    收藏  举报