二次封裝Response類
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):
'''
:param data_status: 狀態碼
:param msg: 提示資訊
:param results: 附加資訊,如序列化得到的資料
:param headers:
:param status: HTTP狀態碼
:param kwargs: 其他資訊
'''
# data的初始狀態:狀態碼與狀態資訊
data = https://www.cnblogs.com/LYPZX/p/{'status': data_status,
'msg': data_msg,
}
# data的回應資料體
# results可能是False、0等資料,這些資料某些情況下也會作為合法資料回傳
if results is not None:
data['results'] = results
# data回應的其他內容
# if kwargs is not None:
# for k, v in kwargs.items():
# setattr(data, k, v)
data.update(kwargs)
super().__init__(data=https://www.cnblogs.com/LYPZX/p/data, status=http_status, headers=headers, exception=exception) #重寫父類Response的__init__方法
# 使用:
# APIResponse() 代表就回傳 {"status": 0, "msg": "ok"}
# APIResponse(result="結果") 代表回傳 {"status": 0, "msg": "ok", "result": "結果"}
# APIResponse(status=1, msg='error', http_status=400, exception=True) 例外回傳 {"status": 1, "msg": "error"}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228411.html
標籤:Python
