Django之简单返回数据方法


方法一:  通过字典方式返回

def login_view(request):
    if request.method == 'POST':
     # 定义一个默认返回数据字典 back_code
= {'code': 200, 'msg':''} form = LoginForm(request.POST) if form.is_valid(): telephone = form.cleaned_data.get('telephone') password = form.cleaned_data.get('password') remember = request.POST.get('remember') user = authenticate(request, username=telephone, password=password) if user: if user.is_active: login(request, user) if remember: request.session.set_expiry(None) else: request.session.set_expiry(0) else:
# 做完判断修改字典中的数据 back_code[
'code'] = 101 back_code['msg'] = '该账户已锁定!' else: back_code['code'] = 102 back_code['msg'] = '该账户不存在!' else: pass
# 将字典返回
return JsonResponse(back_code, safe=False, json_dumps_params={'ensure_ascii': False}) return render(request, 'cms/login.html')

方法二:  封装返回数据工具

from django.http import JsonResponse


class HttpCode(object):
    '''
    定义状态
    '''
    ok = 200
    paramserror = 400
    unauth = 401
    methoderror = 405
    servererror = 500


def result(code=HttpCode.ok, message='', data=None, kwargs=None):
    '''
    封装返回JsonResponse方法
    :param code:  状态
    :param message:  错误信息
    :param data:  返回数据
    :param kwargs:  保证代码的健壮性
    :return: JsonResponse数据
    '''
    # 定义返回的字典
    json_dic = {'code': code, 'message': message, 'data': data}

    # 判断kwargs是否存在以及格式是否正确, 通过则添加入字典中
    if kwargs and isinstance(kwargs, dict) and kwargs.keys():
        json_dic.update(kwargs)
    return JsonResponse(json_dic, safe=False, json_dumps_params={'ensure_ascii': False})

def params_error(message
='', data=None): return result(code=HttpCode.paramserror, message=message, data=data) def unauth(message='', data=None): return result(code=HttpCode.unauth, message=message, data=data) def method_error(message='', data=None): return result(code=HttpCode.methoderror, message=message, data=data) def server_error(message='', data=None): return result(code=HttpCode.servererror, message=message, data=data)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM