1.普通版本的Response封装
- 新建一个response的文件夹
- 在新建的文件中写入封装的自定义的Response对象
class MyResponse():
def __init__(self):
self.status = 100
self.msg = None
@property
def get_dict(self):
return self.__dict__
# -----自己没封装Response前的写法
class Test(APIView):
def get(self,request):
response={'status':'100','msg':None}
#写一堆逻辑
response['data']={'name':'jack','age':19}
response.data={}
return Response(response)
# -----自己没封装Response前的写法
from app01.response import MyResponse
class Test(APIView):
def get(self, request):
response = MyResponse()
# 写一堆逻辑
response.status=101
response.msg='失败了'
response.data={'name': 'jack', 'age': 19}
return Response(response.get_dict)
2.高级版本的Response封装
- 创建response文件夹
- 封装自己的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': 'lqz', 'age': 19},next=9)