封装json数据,返回码和对应信息,还有其他数据。

# 状态码
class ReturnCode:
    """
    和前台共同协商 好的 一些状态码信息
    ReturnCode.SUCCESS
    """
    SUCCESS = 0
    FAILED = -100
    UNAUTHORIZED = -500
    BROKEN_AUTHORIZED_DATA = -501
    WRONG_PARMAS = -101

    # 类方法(不需要实例化类就可以被类本身调用)
    # ReturnCode.message(code)
    @classmethod
    def message(cls, code):
        if code == cls.SUCCESS:
            return 'success'
        elif code == cls.FAILED:
            return 'failed'
        elif code == cls.UNAUTHORIZED:
            return 'unauthorized'
        elif code == cls.WRONG_PARMAS:
            return 'wrong params'
        else:
            return ''


def wrap_json_response(data=None, code=None, message=None):
    """
    wrap 是包裹包装的意思,包装json格式的返回信息
    :param data:
    :param code: ReturnCode类定义的返回码
    :param message:ReturnCode类定义的返回码对应的message信息
    :return:返回字典{data:None,code:0,message:success}
    """
    response = {}
    if not code:
        code = ReturnCode.SUCCESS
    if not message:
        # 根绝返回码,获取对应信息
        message = ReturnCode.message(code)
    if data:
        response['data'] = data
    response['result_code'] = code
    response['message'] = message
    return response


if __name__ == "__main__":
    data = "xxxxx"
    # code=ReturnCode.SUCCESS ,除了SUCCESS,还可以是
    """
    SUCCESS
    FAILED
    UNAUTHORIZED
    BROKEN_AUTHORIZED_DATA
    WRONG_PARMAS
    """
    response = wrap_json_response(data=data,code=ReturnCode.SUCCESS)
    print("我们可以使用 JsonResponse(data=response, safe=False) 进行返回")
    print("response的值", response)
    print("response的类型", type(response))

    """
    输出结果:
    
    我们可以使用 JsonResponse(data=response, safe=False) 进行返回
	response的值 {'data': 'xxxxx', 'result_code': 0, 'message': 'success'}
	response的类型 <class 'dict'>
    """

猜你喜欢

转载自blog.csdn.net/sunt2018/article/details/86553930