Users table : 사용자마다 보여지는 페이지들이 다름
: 장고가 user테이블을 제공해줌
기존의 users 장고를 상속받아서 우리가 만드는 user를 만들면 됨
장고에서 제공해주는 authentication(인증)
클라이언트 : 회원가입 요청(회원정보) -> 서버에서 user테이블에 저장
: 로그인요청 -> 서버가 authenticate( 로그인 정보와 user table 정보가 맞는지 인증) 하고 클라이언트에token(login-인증된 상태를 보내줌)을 보냄
: 토큰에 대한 요청 -> 서버가 해당 user에 대한 응답
authenticate(인증), login , logout 을 통해 클라이언트의 인증을 관리
account 앱 만들기
1. python manage.py startapp account
2. settings.py 에 installed_APPS에 'account'
3. account 앱의 views.py안에 login폼 가져오기
4. account 앱 안에 urls.py 만들고
lionproject안의 urls.py안에 account앱의 경로를 만들어줌
5. templates폴더를 생성 -> login.html만들어주고 login창안으로 갈 수 있는 경로 a태그를 만들어줌
6. login.html을 렌더링 해주는 함수는 GET방식으로 들어오게되고, create와 같은 데이터베이스에 생성하는 함수는 POST로 요청이 들어온다.
7. logout하는 함수도 만들어준다
logout연결
8. 시행을 위해서는 superuser를 만들어줘야한다
python manage.py createsuperuser
9. login이 제대로 시행되었는지 확인하기 위해서
인증된 user가 맞다면 user의 username을 출력하도록 (logout하면 이름 뜨는게 사라짐)
회원가입
1. views.py
urls.py
2. templates 안에 signup.html (얘도 login.html과 똑같이)
form action이 registerView로 가도록 함
이런식으로 정보가 들어오면(POST)이면 login을 시켜줌
정보를 GET해야되면 signup.html로 보내준다.
3. login된 상태와 logout된 상태를 구분해서 페이지창이 보이도록 함
4. AbstractUser를 상속받음으로써 더 넓은 입력을 받을 수 있다.
5. settings.py 안에 이걸로 인증하는 usermodel로 사용하겠다고 선언해야한다.
6. python manage.py makemigrations ( model이 새로 생성될때마다 해줘야함)
7. python manage.py migrate를 하기전에
settings.py installed_apps의 admin, urls.py안에 있는 admin을 다 주석처리해주고 실행
8. accout폴더 안에 forms.py생성
UserCreationForm을 상속받는 RegisterForm
models.py안에 생성한 CustomUser에 맞게 회원가입 폼이 생성됨
비밀번호는 두번확인하기 때문에 password2까지
9. views.py 안에
기존의 userCreationForm말고 내가 추가한 RegisterForm으로 바꿔준다
10. 이런식으로 login확인을 할 수 있다
11. admin.py에 등록을 해줘야한다
이렇게 하면 /admin/account/customuser/안에 superuser로 만들거나, user만들었던 user가 생기게된다
'기타 > Django & Web' 카테고리의 다른 글
[django] 중복되는 html을 한 곳에 모아놓는 : base.html (0) | 2021.05.20 |
---|---|
[django] Pagination (0) | 2021.05.18 |
[django] django-crispy-form 설치 및 사용방법 (0) | 2021.05.16 |
[Django - Thumbnail] 섬네일 지정하기 (0) | 2021.05.11 |
Week04 - Static , Media, Form (0) | 2021.05.04 |