DRF之请求与响应

请求与响应

控制请求编码格式

drf配置文件默认可以解析全部编码格式,drf配置文件路径:

from rest_framework import settings

全局控制

在配置文件中加入:

REST_FRAMEWORK = {
    'DEFAULT_PARSER_CLASSES': [
        'rest_framework.parsers.JSONParser',  # 解析json
        'rest_framework.parsers.FormParser',  # 解析urlencoded
        'rest_framework.parsers.MultiPartParser',  # 解析form-data
    ],
}

三个参数代表能接收的编码格式,注释掉其中一个代表前端用该编码格式传的数据不会被接收到。

局部控制

在视图类中配置:

from rest_framework.parsers import JSONParser, FormParser, MultiPartParser

class BookView(APIView):
    parser_classes = [
        JSONParser,  # 解析json
        FormParser,  # 解析urlencoded
        MultiPartParser  # 解析form-data
    ]

有哪个就代表可以解析哪些格式的数据。

优先级:视图类 > 项目配置文件 > drf配置文件

响应

drf的响应对象有着众多属性,Response路径:

from rest_framework.response import Response

image

"""重要参数"""
data=None,   # 要序列化的数据,字典,列表,字符串
status=None, # http响应状态码
headers=None, # 响应头
"""其他参数"""
template_name=None, # 模板名字,渲染页面效果
content_type=None # 响应数据的格式,默认为json格式

全局控制响应编码

配置文件中添加

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': [
        'rest_framework.renderers.JSONRenderer',  # json格式
        'rest_framework.renderers.BrowsableAPIRenderer',  # 浏览器格式
    ],
}

局部生效

视图类中添加:

from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer

class BookView(APIView):
    	renderer_classes = [JSONRenderer,BrowsableAPIRenderer]
posted @ 2022-06-16 20:02  Yume_Minami  阅读(69)  评论(0编辑  收藏  举报