나의 과제 풀이
Todo List Project
pip install djangorestframework-simplejwt
세가지의 요소를 의존성에 의해 한번에 설치할 수 있다.
커스텀 유저는 공식문서 또는 이전에 작성한것을 가져와 복사하여 생성한다.(추천)
데이터 설계
user
id = pk값이므로 자동 생성됨
email = unique 설정
USERNAME_FIELD를 email로 설정
성별 = char, booleanField로 설정 가능
blank=True,default=""
필수 작성 내용이 아니며, 기본값 설정
is_active : 활성화된 계정인지 여부 판단
세션 로그인
: 데이터 정보를 서버에서 관리
조작이 쉬운 장점이 있음
로그아웃은 데이터 베이스에서 주문번호 삭제
jwt 토큰
: 데이터 정보를 서버에서 관리하지 않음
티켓을 발급하여 유효성을 검증
데이터 베이스, 서버에 부담이 덜한 장점이 있음
로그아웃 기능은 프론트에서 토큰 자체를 삭제
case 1
is_vaild(raise_exception=True)
에러만 리턴
case 2
if not serializer.is_valid():
# some code
return Response(serializer.errors)
유효성 검증 또는 필드 검증(필요없는 데이터인지까지 검증)
비밀번호를 쓰기 전용으로 만듬으로써
데이터 읽어올때 출력되지 않게 방지할 수 있음
write_only , read_only
exclude = ["password"]
읽기,쓰기 모두 제외
비밀번호 복호화 과정 pop 사용 예시
"required" : False
필수 속성값이 아님을 알림
get pk 설정시 알아서 pk값을 찾아서 반영해줌
쿼리셋을 리턴할땐 many=True가 필수 사항
put , patch의 차이점
put 모두 수정
patch 일부 수정
회원 탈퇴시 데이터베이스를 바로 삭제하는것은
올바른 방법이 아님
예시 ) 사용자가 탈퇴후 결제한 내역을 요청할때
따라서 데이터베이스를 삭제하는것이 아닌
비활성화 하는것이 바람직하다.
비활성화된 계정을 추후에 삭제
섬세한 구분
from django.utils import timezone
UTC : 세계 협정시
KST : UTC + 9