Encapsulation
StatusCode
pip install StatusCode
utils/error/error_utils.py
from StatusCode import BaseStatusCode, StatusCodeField
class UserStatusCode(BaseStatusCode):
""" User Relative StatusCode 4001xx """
USER_NOT_FOUND = StatusCodeField(400101, 'User Not Found', description=u'用户不存在')
utils/error/response_utils.py
from django.http import JsonResponse
from StatusCode import StatusCodeField
def response_data(status_code=200, message=None, description=None, data={}, **kwargs):
return dict({
'status': status_code,
'message': message,
'description': description,
'data': data,
}, **kwargs)
def response(status_code=200, message=None, description=None, data={}, **kwargs):
message, description = (message or status_code.message, description or status_code.description) if isinstance(status_code, StatusCodeField) else (message, description)
return JsonResponse(response_data(status_code, message, description, data, **kwargs), safe=False)
Usage
from utils.error.errno_utils import UserStatusCode
from utils.error.response_utils import response
def xxx(request):
return response(UserStatusCode.USERNAME_HAS_REGISTERED)
References