TIL(25.1.13)

채채·2025년 1월 13일

Today I Learned

목록 보기
55/75

장고의 기본 사용자 모델 (User)

기본 사용자 모델 (User)

Django에서 제공하는 사용자 모델은 User 모델로, 사용자 인증 및 권한 관리 시스템의 기본 모델입니다. 이 모델은 Django의 django.contrib.auth 앱에서 제공되며, 사용자 관련 데이터와 인증 절차를 처리

  • 필수 필드: username: 사용자 이름, password: 해시된 비밀번호, email: 이메일 주소,first_name: 이름,last_name: 성
  • 상태 필드: is_staff: 관리 사이트에 접근할 수 있는지 여부, is_active: 계정 활성화 여부, is_superuser: 슈퍼유저 권한 여부
  • 시간 필드: last_login: 마지막 로그인 시간, date_joined: 계정 생성 시간

기본 사용자 모델 사용 예제

Django의 기본 사용자 모델을 사용할 때, 도구 몇 가지를 제공함.

  1. 관리 페이지: 기본 관리자 인터페이스에서 사용자 관리 가능.
  2. 기본 인증 뷰: 로그인, 로그아웃, 비밀번호 변경 등의 기능을 제공.
  3. 명령어: createsuperuser 명령어로 슈퍼유저 계정을 생성.

기본 사용자 모델의 한계

커스터마이징이 필요할 수 있음.

  1. username이 아닌 email을 기본 로그인 필드로 사용하고 싶은 경우.
  2. 추가 필드(예: 프로필 사진, 생년월일, 상태메세지 등)를 저장하고 싶은 경우.
  3. 필드나 인증 로직을 완전히 재설계해야 하는 경우.

커스터마이징 방법

  1. AbstractUser 상속
    AbstractUser는 기본 사용자 모델의 필드와 기능을 포함하는 클래스. 이를 상속 받아 추가 필드를 정의함.
  2. AbstractBaseUser 상속
    AbstractBaseUser는 사용자 인증 기능만 포함하며, 나머지는 직접 구현해야 함.. 이 방법은 사용자 모델을 완전히 새로 설계할 때 사용됨.

사용자 모델 지정

사용자 모델을 커스터마이징한 경우, settings.py에 아래와 같이 설정해야 함.

    AUTH_USER_MODEL = '앱이름.CustomUser'




HTTP method

HTTP는 웹에서 브라우저와 서버간에 데이터를 주고받을 때 사용하는 프로토콜.

대표적으로 GET, POST, PUT , DELETE가 있음.

  1. GET
  • 목적 : 데이터 요청, 서버는 요청한 데이터 반환
  • 특징 :
    • 요청한 데이터만 반환, 상태변경 x
    • 데이터를 url에 담아 전송.
    • 캐싱 가능, 북마크나 히스토리 저장 가능
  1. POST
  • 목적 : 데이터 전송. 데이터를 생성하거나 수정하는 요청
  • 특징 :
    • 데이터를 포함하여 서버로 전송. url에 노출되지 않아서 상대적으로 보안이 높음
    • 주로 폼 제출이나 파일 업로드에 사용
    • 데이터 크기 제한이 없음.
  1. PUT
  • 목적 : 전체적으로 수정하는 요청
  • 특징 :
    • 지정된 자원의 전체를 수정하기 위한 요청
    • 요청 본문에 데이터를 담아 보냄
    • 자원이 존재하지 않으면 새로 생성 가능
  1. DELETE
  • 목적 : 특정 자원 삭제하는 요청
  • 특정 :
    • 서버에서 특정자원을 삭제, 삭제하면 더이상 존재하지 않음.
    • 데이터가 요청 본문에 포함되지 않고, url만으로 어떤 자원을 삭제할 지 지정
profile
화이팅

0개의 댓글