大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
前言
有时候我们使用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"
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166131.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...