Django REST Framework解析器和渲染器

时间:Nov. 14, 2019 分类:

目录:

解析器组件

from django.http import JsonResponse

from rest_framework.views import APIView
from rest_framework.parsers import JSONParser, FormParser
# Create your views here.


class LoginView(APIView):
    parser_classes = [FormParser]

    def get(self, request):
        return render(request, 'parserver/login.html')

    def post(self, request):
        # request是被drf封装的新对象,基于django的request
        # request.data是一个property,用于对数据进行校验
        # request.data最后会找到self.parser_classes中的解析器
        # 来实现对数据进行解析

        print(request.data)  # {'username': 'why', 'password': 123456}

        return JsonResponse({"status_code": 200, "code": "OK"})

使用方法比较简单

  • from rest_framework.views import APIView
  • 继承APIView
  • 直接使用request.data就可以获取Json数据

如果是解析Json,不允许任何其他类型的数据请求,可以

  • from rest_framework.parsers import JsonParser
  • 给视图类定义一个parser_classes变量,值为列表类型[JsonParser]
  • 如果parser_classes = [], 那就不处理任何数据类型的请求了

渲染器组件

渲染器是友好的展示数据,DRF测试的时候使用的页面就是这个显示的