로그인 views.py 작성하기

이유진·2021년 11월 27일
0

Westagram

목록 보기
2/3
post-thumbnail

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에 작성한 로그인 작성한 내용 👇

  • 입력받은 로그인 정보(이메일, 비밀번호) 작성하기
  • 로그인과 비밀번호 정보가 DB에 없을때, 조건과 해당 메세지 작성하기
  • 로그인과 비밀번호 정보가 DB에 있을때, 조건과 해당 메세지 작성하기



1. 동일한 조건 중복 작성 -> 수정

*처음에 작성한 코드👇

[개선 할 점, 깨달은점]

  • 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)

2. if문의 True, False 값의 출력 이해

*처음에 작성한 코드👇

[개선 할 점, 깨달은점]

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)
# // --> 조건문 외 경우 = 계정과 패스워드를 올바르게 입력한 경우, 자동으로 성공 메세자 반환!



*이메일을 잘못 입력했을때, 오류 메세지👇


*패스워드를 잘못 입력했을때, 오류 메세지👇


*로그인 정보(계정과 패스워드)를 올바르게 입력하였을때, 성공 메세지👇


profile
차근차근 배워나가는 주니어 개발자

0개의 댓글