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