본문 바로가기
파이썬

파이썬 Flask-restful-위의 예외를 처리하는 동안 다른 예외가 발생했습니다.

by º기록 2020. 9. 13.
반응형

Flask-restful API의 일부로 로그인 리소스가 있습니다.

class LoginApi(Resource):
    def post(self):
        try:
            body = request.get_json()
            user = User.objects.get(email=body.get('email'))
            authorized = user.check_password(body.get('password'))
            if not authorized:
                raise UnauthorizedError
            expires = datetime.timedelta(days=7)
            access_token = create_access_token(identity=str(user.id), expires_delta=expires)
            return {'token': access_token}, 200
        except DoesNotExist:
            raise UnauthorizedError
        except Exception as e:
            raise InternalServerError

로그인 경로에 대한 4 가지 시나리오가 있습니다.

따라서 3 번-UnauthorizedError 대신 InternalServerError가 발생합니다.

if not authorized : 문이 올바르게 작동합니다 (인쇄물을 넣으면 작동하는 것을 볼 수 있습니다). 그러나 어떤 이유로 오류를 발생 시키려고 할 때 다음이 표시됩니다.

위의 예외를 처리하는 동안 다른 예외가 발생했습니다.


 

해결 방법

 

if 문은 UnAuthorized를 발생 시키지만 예외에서 발생하는 경우에는 DoesNotExist를 발생시켜 예외에서 UnAuthorized가 발생할 수 있도록 만들어야합니다.

 

참조 페이지 https://stackoverflow.com/questions/63758068

 

 

반응형

댓글