westagram' 프로젝트를 진행하면서, 필수적으로 구현해야하는 기능에 대해서 내가 잘못 작성했던 것들과 개선해야 할 점들을 수정 전
과 수정 후
를 비교하면서 기록해보려고 한다.
저번에 회원가입 기능 구현에 이어서,
이번에는 views.py에서 로그인 기능 구현
에 대해서 작성해 볼 것이다!
*내가 작성한 회원가입 기능
에 기록한 벨로그는
아래의 링크로 쉽게 접근할 수 있게 링크를 남겨두는 걸로!
https://velog.io/@dldbwls492/%ED%9A%8C%EC%9B%90%EA%B0%80%EC%9E%85-views.py-%EC%9E%91%EC%84%B1
*현재까지(or 최종) : views.py에 작성한 로그인 작성한 내용 👇
*처음에 작성한 코드👇
[개선 할 점, 깨달은점]
filter()
메소드는 get()
이라는 메소드와 다르게,
여러개의 조건을 동시에 만족하는 객체들을 쿼리셋 형태로 담아서 DB에서 불러올 수 있다.
굳이,
내가 따로따로 이메일과 패스워드를 동일한 구조의 함수로 중복되게,
filter()로 불러오는 조건만 다르게 코드를 작성할 필요가 없다.
즉,
filter() 메소드를 작성할때, 이메일과 패스워드 조건을 둘다 작성해서 불필요한 코드를 줄일 수 있다는 것을 배웠다.
[개선점 반영 후 👇]
if not User.objects.filter(email = user_email, password = user_password).exists():
# 계정을 잘못 입력?? = 계정이 DB에 없다면 과 # 패스워드 잘못 입력? = 패스워드가 DB 에 없다면:
return JsonResponse({"message": "INVALID_USER"}, status=401)
*처음에 작성한 코드👇
[개선 할 점, 깨달은점]
if '조건문 1':
return A
return B
A라는 return 값 : '조건문 1'이 참일때 반환
B라는 return 값 : else나 '거짓값의 조건문 2'(if)를 코드를 작성하지 않아도 자동으로 조건문1 외
경우, 자동으로 B값 반환
즉, 로그인 정보를 잘못 입력했는지(조건문 1) 과 로그인 정보를 잘 입력했는지(그 외 조건문)으로,
딱! 두가지 조건문을 작성할 경우에는,
else
나 또다른 if 조건문
이나 elif
를 작성하지 않아도,
그 외의 조건을 작성하지 않아도 값 반환이 가능하다는 것!
(분명, if / elif / else 개념을 알고 있다고 생각했는데, 아직도 개념이 부족하다는 것을 느꼈다...)
[개선점 반영 후 👇]
if not User.objects.filter(email = user_email, password = user_password).exists():
# 계정을 잘못 입력?? = 계정이 DB에 없다면 과 # 패스워드 잘못 입력? = 패스워드가 DB 에 없다면:
# // --> 자체적으로 not을 사용하여 False값이 나오면 조건문이 True가 되도록 설정함
return JsonResponse({"message": "INVALID_USER"}, status=401)
return JsonResponse({"message": "SUCCESS"}, status=200)
# // --> 조건문 외 경우 = 계정과 패스워드를 올바르게 입력한 경우, 자동으로 성공 메세자 반환!
*이메일을 잘못 입력했을때, 오류 메세지👇
*패스워드를 잘못 입력했을때, 오류 메세지👇
*로그인 정보(계정과 패스워드)를 올바르게 입력하였을때, 성공 메세지👇