您的位置:首页 > 编程语言 > Go语言

Django(53)二次封装Response

2021-06-09 11:37 901 查看

前言

有时候我们使用

drf
Response
,会发现默认返回的格式不太友好,每次我们都需要写入以下的格式

return Response({
"status": 0,
"message": "成功",
"results": serializer.data
})

这样会非常麻烦,我们想默认就有

status
message
,所以我们可以二次封装
response
 

二次封装Response

我们在项目的目录中新建一个

response.py
文件

from rest_framework.response import Response

class APIResponse(Response):

def __init__(self, data_status=0, data_msg='ok', results=None, http_status=None, headers=None, exception=False, **kwargs):
# data的初始状态
data = {
'statusCode': data_status,
'message': data_msg
}
# data的响应数据体
if results is not None:
data['results'] = results
# data的其他数据
data.update(kwargs)
super().__init__(data=data, status=http_status, headers=headers, exception=exception)

  上述代码对

data
字段复了初始值,
statusCode
值为0,
message
值为
ok
,然后判断返回的内容中是否有
results
字段,有的话
data
数据中再返回一个
results
,最后判断是否有额外的参数,比如我们要返回一个
token
给前端,这样以后我们返回数据的时候,如果默认是成功的类型,只需要写
return APIResponse(results=serializer.data)
即可

我们这里模拟返回一个

token
,代码如下

return APIResponse(results=serializer.data, token="123abcppp")

然后访问

url
,可以看到返回的结果就会增加
token

{
"statusCode": 0,
"message": "ok",
"results": {
"id": 4,
"name": "test",
"age": 18,
"sex": 1
},
"token": "123abcppp"
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: