from django.conf import settings
from django.http import JsonResponse
def json_response(json_dict):
response = JsonResponse(json_dict)
if settings.DEBUG:
response["Access-Control-Allow-Origin"] = "*"
response["Access-Control-Allow-Methods"] = "GET,POST,PUT,DELETE,OPTIONS"
response["Access-Control-Allow-Headers"] = "Access-Control-Allow-Methods,Origin, Accept,Content-Type, Access-Control-Allow-Origin, access-control-allow-headers,Authorization, X-Requested-With"
return response
class GlobalReturnClass(object):
def __init__(self, info_dict):
if isinstance(info_dict, dict):
self.CODE = info_dict.get('code')
self.MSG = info_dict.get('msg')
else:
self.CODE = 1000
self.MSG = ''
def global_error_response(data=None, msg=None, status_info=None):
if status_info:
response_dict = {
'code': GlobalReturnClass(status_info).CODE,
'msg': GlobalReturnClass(status_info).MSG,
'data': data if data else ''
}
else:
response_dict = {
'code': 1001,
'msg': msg if msg else '',
'data': data if data else ''
}
return JsonResponse(response_dict)
def global_success_response(data=None, msg=None, status_info=None):
if status_info:
response_dict = {
'code': GlobalReturnClass(status_info).CODE,
'msg': GlobalReturnClass(status_info).MSG,
'data': data if data else ''
}
else:
response_dict = {
'code': 1000,
'msg': msg if msg else '',
'data': data if data else ''
}
return JsonResponse(response_dict)
GIFT_DATE_NOT_SUITABLE = dict(code=1002, msg='礼包时间范围与其他礼包冲突')
USER_DOESNOT_EXIST = dict(code=1003, msg='用户不存在')
GIFT_DOSENOT_SUITABLE_USER = dict(code=1004, msg='该礼包不适用该用户')
GIFT_IS_EXPIRED = dict(code=1005, msg='礼包已过期')
USER_NOT_RECEIVE_GIFT = dict(code=1006, msg='用户未领取')
other版本:
import simplejson
import logging
from django.http import JsonResponse
from core.constants import AJAX_SUCCESS_CODE
from django.conf import settings
logger = logging.getLogger(__name__)
def code_msg_error_dict(code_msg_error):
return {
"data": [],
"msg": code_msg_error.message,
"code": code_msg_error.code
}
def json_response(json_dict, status=200):
response = JsonResponse(json_dict, status=status)
if settings.DEBUG:
response["Access-Control-Allow-Origin"] = "*"
return response
def code_msg_error_response(code_msg_error, status=200):
return JsonResponse(code_msg_error_dict(code_msg_error), status=status)
def code_msg_success_response(resp_dict=None):
if not resp_dict:
resp_dict = {}
resp_dict['data'] = {}
resp_dict['code'] = AJAX_SUCCESS_CODE
resp_dict['msg'] = ''
return json_response(resp_dict)
def msg_response(msg=u"", status=400, error_code=3006):
"""返回一条简单地消息
"""
return json_response({
"code": error_code,
"msg": msg
}, status=status)
def load_json_dict(json_string):
try:
result_dict = simplejson.loads(json_string)
except Exception as e:
logger.error(u'JSON数据读取错误. json_string: {}, '
u'Exception: {}'.format(json_string, e))
return None
if not isinstance(result_dict, dict):
logger.error(u'JSON数据读取错误。结果不是一个dict。')
return None
else:
return result_dict