DRF之请求与响应

请求

  请求指的就是Request类的对象也就是新的request对象

from rest_framework.request import Request

  需掌握

1、__getattr__
2、request.data
3、request.query_parmas--->self._request.GET-->restful规范里,请求地址中带过滤(查询)条件---》get请求地址中提交的数据在GET中,---》query_parmas:查询参数

请求的解析格式

  局部配置

  views.py

from rest_framework.parsers import JSONParser
class PublishView(APIView):
    parser_classes = [JSONParser]
    def post(self, request):
        print(request.data)
        return Response('post请求')

 

   全局配置

    在settings.py中配置

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

  使用顺序

    我们没有配置,也有默认配置,3个都能解析

    drf有默认配置(最后)----》项目配置文件的配置(其次)----》视图类中配的(优先用)

    drf的默认配置:

from rest_framework import settings

   总结:一般情况下,都使用默认即可,不用配置

响应

Respone:from rest_framework.response import Response

   需掌握

    data=None    字符串,字典,列表

      给http响应body体中内容

       response对象中取出处理

     status=None   响应状态码:1xx,2xx,3xx,默认是200

from rest_framework.status import HTTP_201_CREATED
Response(ser.data,status=HTTP_201_CREATED)

    headers=None,      # 响应头 字典

   了解

    template_name=None,  # 模板名字(不用),用浏览器访问时,可以改

    exception=False,    # 异常处理

    content_type=None   # 响应编码格式

响应格式

  和请求体的解析格式一样

  局部配置

from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer
class BookDetailView(APIView):
    renderer_classes = [JSONRenderer,]

  全局配置

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (  # 默认响应渲染类
        'rest_framework.renderers.JSONRenderer',  # json渲染器
        'rest_framework.renderers.BrowsableAPIRenderer',  # 浏览API渲染器
    )
}

 

posted @ 2022-04-01 16:29  那就凑个整吧  阅读(76)  评论(0编辑  收藏  举报