Django REST Framework解析器和渲染器
目录:
解析器组件
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测试的时候使用的页面就是这个显示的