天天看點

Django自定義裝飾器

NOPERMISSION = -2

def auth_required(view):
    """身份認證裝飾器,
    :param view:
    :return:
    """

    def decorator(request, *args, **kwargs):
        token = request.POST.get('auth_token', '')
        try:
            if token == '2':
                return view(request, *args, **kwargs)
        except ValueError:
            pass
        return auth_fail_handler(request)
    return decorator

def auth_fail_handler(request):
    """非法請求處理
    :param request:
    :return:
    """
    return HttpResponse(json.dumps({'code': NOPERMISSION}))

@csrf_exempt
@auth_required
def api_test(request):
    return HttpResponse(json.dumps({'code': 0}))