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})

 

posted @ 2018-06-21 11:04  十七楼的羊  阅读(197)  评论(0编辑  收藏  举报