DRF request 与 Responses 的封装!
Responses 默认是调用的是 render 实现达到渲染的目的!
前端请求 字段 Accept 指定希望得到的数据类型!或者在 url 后缀之中指定结尾类型,也就是希望返回的类型!
#在setting 指定返回类型 REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ) }
在单独的视图指定渲染
from django.contrib.auth.models import User from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView class UserCountView(APIView): """ A view that returns the count of active users in JSON. """ renderer_classes = (JSONRenderer, ) def get(self, request, format=None): user_count = User.objects.filter(active=True).count() content = {'user_count': user_count} return Response(content)
request默认的JSON或表单数据来进行解析,前端请求包含字段Content-Type 设置响应方式,以便后端解析数据!
REST_FRAMEWORK = { #此设置说明只能按照 json 进行数据解析! 'DEFAULT_PARSER_CLASSES': ( 'rest_framework.parsers.JSONParser', ) }
也可以为单个请求类进行指定解析器!(参考文档!)
from rest_framework.parsers import JSONParser from rest_framework.response import Response from rest_framework.views import APIView class ExampleView(APIView): """ A view that can accept POST requests with JSON content. """ parser_classes = (JSONParser,) def post(self, request, format=None): return Response({'received data': request.data})