码迷,mamicode.com
首页 > 其他好文 > 详细

请求与响应格式配置

时间:2021-04-30 12:35:53      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:url   格式   property   code   encode   ext   data   multipart   work   

配置响应格式

在setting中配置
	REST_FRAMEWORK = {
    ‘DEFAULT_RENDERER_CLASSES‘: (  # 默认响应渲染类
        ‘rest_framework.renderers.JSONRenderer‘,  			# json渲染器
        ‘rest_framework.renderers.BrowsableAPIRenderer‘,  	# 浏览API渲染器
    	)
    }
    
    # 在浏览器访问就是浏览器方式,用postman访问就是json格式,ajax请求就是json格式

局部配置某个视图类的响应格式
	# 在视图类中配置
    renderer_classes = []

配置能够解析的格式(urlencoded,formdata,json)

在setting中配置
    REST_FRAMEWORK = {
        ‘DEFAULT_PARSER_CLASSES‘: [
            ‘rest_framework.parsers.JSONParser‘,
            ‘rest_framework.parsers.FormParser‘,
            ‘rest_framework.parsers.MultiPartParser‘
        ]
    }
    
	# 它就只能解析三种请求编码格式(urlencoded,formdata,json)

局部使用
	# 在视图类中配置
	parser_classes = [FormParser]

封装自己的Response对象

方法一:

class MyResponse():
    def __init__(self):
        self.status = 100
        self.msg = None
    @property
    def get_dict(self):
        return self.__dict__
    
class Test(APIView):
    def get(self, request):
        response = MyResponse()
        # 写一堆逻辑
        response.status=101
        response.msg=‘失败了‘
        response.data={‘name‘: ‘a‘, ‘age‘: 19}

        return Response(response.get_dict)

方法二:

from rest_framework.response import Response
class APIResponse(Response):
    def __init__(self, code=100, msg=None, data=None, status=None,
                 template_name=None, headers=None,
                 exception=False, content_type=None, **kwargs):
        dic = {‘status‘: code, ‘msg‘: msg}
        if data:
            dic[‘data‘] = data
        if kwargs:
            dic.update(kwargs)

        super().__init__(data=dic, status=status,
                         template_name=template_name, headers=headers,
                         exception=exception, content_type=content_type)

        
### 使用,在视图类中
return APIResponse(msg=‘成功了‘,data={‘name‘: ‘a‘, ‘age‘: 19},next=9)

请求与响应格式配置

标签:url   格式   property   code   encode   ext   data   multipart   work   

原文地址:https://www.cnblogs.com/shof/p/14720702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!