django - 로그인 기능 구현중 에러 메세지 리턴 방법

이주명·2021년 11월 24일
0
post-custom-banner

로그인을 위한 view를 만들때 에러메세지를 리턴하는 방법은 두가지가 있을수 있다.

1. .get()메소드를 사용해서 이메일이 확인되지 않을때 에러를 발생시킨다.

위에 코드를 보면 User.objects.get이 통과하지 못하면 (저장된 이메일이 없으면) 바로 except로 빠져 에러메세지를 리턴한다.

이는 .get() 메소드가 값이 없을 경우 에러를 만들어내는 함수이기 때문이다. 장고 시스템적으로 발생시키는 에러!

2. .filter()를 사용해서 이메일이 없을때 리턴 메세지

.filter()를 사용하면 값이 존재하지 않아도 에러를 발생시키지 않고 None 값으로 들어가게 된다. 그러므로 if 문을 다돌며 검사를 하게되어 조건에 맞지 않으면 내가 만든 에러메세지를 리턴하게 해준다.

두 방법 다 로그인 할때 이메일 또는 비밀번호가 둘중에 하나라도 오류라면 전달해주는 결과는 같지만 내부적 시스템에서는 조금 다른 면이 있다. 내가 오류를 조금더 커스터마이징 해주고 싶다면 filter 을 쓰는게 맞고 포괄적으로 안정적인 오류를 잡고 싶다면 get을 쓰는게 좋은것 같다.

profile
oh yeah
post-custom-banner

0개의 댓글