2020. 11. 8. 22:48ㆍCoding/Python-Fastcampus
04. 로그인 - 02. 로그인 만들기 - 1
로그인 화면을 만들어야하는데, register.html에서 email과 re-password를 지우고 몇가지만 고치면 훌륭한 로그인 화면이 된다.
register.html을 복사해서 login.html을 만들자.
views.py에서 render를 return해주는 login함수를 만들고,
urls.py에서 login에 연결해준다.
전체적인 흐름은 register함수와 똑같고,
중간에 check_password라는 기능을 불러와서 사용했다.
from django.contrib.auth.hashers import make_password, check_password
make_password와 마찬가지로 기본으로 지원해주는 기능이다.
앞으로 #로그인 처리. 부분에
session과 redirect부분을 추가하면된다.
04. 로그인 - 03. 로그인 만들기 - 2
session.
request.session['user'] = fcuser.id
request안의 session기능을 이용한다.
redirect.
from django.shortcuts import render, redirect
redirect기능을 추가해서 사용하면된다.
주소에 아무것도 안붙였을때 home으로 가게끔 연결.
session활용.
login 담았던 fcuser.id를 담은 user을 아래처럼 불러올 수 있다.
user_id = request.session.get('user')
user_id는 db상에서 pk로 쓰이기 때문에 fauser = Fcuser.objects.get(pk=user_id)로 fcuser에 대한 정보를 불러올 수 있다.
fcuser를 가져오면 해당 유저의 모든 정보에 접근이 가능하다.
위 코드에서는 간단하게 HttpResponse를 이용해서 메인페이지에서 해당 유저의 username을 출력하게끔 만들었다.
session은 브라우저안의 cookie안에 session이 사이트별로 각각 저장이된다.
04. 로그인 - 04. 퀴즈 - 세션 원리 복습과 활용
1. 브라우저의 session의 정보가 저장된곳은? - Cookie
Chrome의 경우 개발자도구의 Applicaion-Cookies에서 볼 수 있다.
2. 코드상에서session을 저장할때 사용하는 방법은? - request.session['user'] = fcuser.id
사용자를 구분할 수 있는 고유값을 저장하면된다.
저장한 session을 사용하는 방법은? - user_id = request.session.get('user')
logout.
request.session.get('user')로 session이 있는지 여부를 확인한다.
session이 없으면 로그인을 안한 상태이므로 넘어가고,
session이 있으면 로그인을 한 상태이므로 del(request.session['user'])로 sessioin을 지운다.
docs.djangoproject.com/en/3.1/topics/http/sessions/
자세한 내용은 역시 정식문서가 가장 좋다.
근데, 영어임...ㅎㅎ
'Coding > Python-Fastcampus' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 9 회차 미션 (0) | 2020.11.10 |
---|---|
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 8 회차 미션 (0) | 2020.11.09 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 6 회차 미션 (0) | 2020.11.07 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 5 회차 미션 (0) | 2020.11.06 |
[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 4 회차 미션 (0) | 2020.11.05 |