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" }
相关文章推荐
- okhttp的二次封装加入泛型
- 短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案
- 浅谈如何在MFC中对CDC进行二次封装
- Django的TemplateResponse
- xUtils3的二次封装使用
- 二次封装selenium,简易框架Jzps
- Android通知的使用及简单二次封装
- OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据
- Axios的二次封装
- bootstrap弹窗二次封装成插件
- Django 响应数据response的返回源码详解
- Imageloader 使用与二次封装自动缓存
- C#二次封装虹软arcface
- django学习心得(结合微信公众二次开发)
- Django-views视图(HttpResponse和HttpRequest)
- 基于Glide的二次封装
- 基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil
- 分享下android 一个Listview下拉刷新的二次封装
- 分享下android 一个Listview下拉刷新的二次封装(第一次修订)
- django HttpResponse