Django에서 User (사용자)
사용자
- 공식문서
https://docs.djangoproject.com/en/4.0/ref/contrib/auth/
- 필드 내용
Django의 사용자 살펴보기
- from django.contrib.auth.models import User
- class AbstractUser(AbstractBaseUser, PermissionsMixin):
보통 사용하는 AbstractUser
- Anonymous
로그인하지 않으면 Error 나는 이유.
권한, 내용 등이 아무것도 없음
User 커스텀 실습
User 커스텀 준비
- App 만들기 (django-admin startapp '앱 이름')
- Model 만들기
- Settings.py 앱 추가
Error 해결
- Error 내용
django.db.migrations.exceptions.InconsistentMigrationHistory:
Migration social_django.0001_initial is applied before its dependency auth.0001_initial on database 'default'.
- DB가 쓰던 것이라서 초기화가 필요
- /App/migrations/__pycache__/ 안에 0001_initial.py 파일 삭제
- db.sqlite3 삭제 (혹시 모르면 잠시 옮겨두는 것도 방법)
- /App/__pycache__/파일안에 model 관련 파일 삭제 (__init__ 파일 건드리지 않기)
만든 결과 확인하기
- VSCODE에서 간단하게 확인하기
- Tool이용해서 확인
User 확장 실습
User 확장
- 데이터 성질에 따라서 맞춰서 추가할 수 있다
- Foreignkey를 사용한다
- Code 추가
결과 확인
- admin을 통해서 확인이 가능하다
사용자(User) 매니저
※ Django Model이 Query를 사용할 때 제공해주는 Interface
일반 생성 User? superuser?
- User를 만들 때 일반 user와 superuser가 나눠진다.
- 특징 등을 알아서 역할에 맞게 사용해야한다.
- code내에서 확인가능
User 매니저 구현(커스터마이징)
https://docs.djangoproject.com/en/4.0/topics/auth/customizing/
- usermanager 같은 변수명은 문제가 되기때문에 'as' 사용해서 다른이름으로 사용
※ set_password : 해싱 되어있음. 따라서 사용하기위해서 check_password 같은 기능 필요
Make_password
- 유효성 검사 추가
- 사용자 입력이 아닌 시스템에서 분기 처리 (나머지 기능 구현)
- 만든 기능 User에 연결
- 이메일 미작성시 Error 확인 (기본제공에는 공란이여도 괜찮았음)
Tip
변수 명 앞에 '_' 넣은 것
: 외부에 노출보다는 숨겨서 내부에서만 사용하기 위한 것
사용자 비밀번호
: 암호화(해싱)을 사용해서 비밀번호 만듬
관리자도 복호화가 안되기 때문에 볼 수 없음
'학습 > [The-Origin][SW][Backend] Main Pag' 카테고리의 다른 글
[The Origin][VSCODE][Django] 로그인/로그아웃 기능 구현 (0) | 2022.05.16 |
---|---|
[The Origin][VSCODE][Django] 회원가입 기능 구현 (0) | 2022.05.16 |
[The Origin][VSCODE][Django][Form] 조금 활용 (0) | 2022.05.16 |
[The Origin][VSCODE][Django][Form] 사용해보면서 기능 알기 (0) | 2022.05.16 |
[The Origin][백엔드] 6주차 (0) | 2022.05.16 |