Django (8. 로그인(세션이란?, 구현)) feat.페스트캠퍼스
1. 세션이란?
2. 화면 구현
-
register.html의 코드를 복사하여 login.html에 붙여넣기!
- 부분적으로 수정해서 사용!
-
views.py에 연결하기!
-
urls.py에 연결하기!
-
웹에 들어가보기!
3. views.py 기능 구현하기!
register.html의 코드를 복사하여 login.html에 붙여넣기!
- 부분적으로 수정해서 사용!
views.py에 연결하기!
urls.py에 연결하기!
웹에 들어가보기!
from django.shortcuts import render
from .models import Fcuser
# make_password 말고도 check_password도 있다
from django.contrib.auth.hashers import make_password, check_password
# Create your views here.
def login(request):
if request.method == 'GET':
return render(request, 'login.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
res_data = {}
if not(username and password):
res_data['error'] = '모든 값을 입력해야 합니다'
else:
# (db에 저장되어 있는 username = post로 받아온 username)
# db에 데이터가 있으면 fcuser에 할당 된다
fcuser = Fcuser.objects.get(username=username)
if check_password(password, fcuser.password):
# 비밀번호가 일치, 로그인 처리를!
# 세션!
# redirect
pass
else:
res_data['error'] = '비밀번호를 틀렸습니다!'
return render(request, 'login.html', res_data)
def register(request):
if request.method == 'GET':
return render(request, 'register.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
useremail = request.POST.get('useremail', '')
password = request.POST.get('password', '')
re_password = request.POST.get('re-password', '')
res_data = {}
if not (username and password and re_password and useremail):
res_data['error'] = '모든 값을 입력해야 합니다.'
elif password != re_password:
res_data['error'] = '비밀번호가 다릅니다.'
else:
fcuser = Fcuser(
username=username,
useremail=useremail,
password=make_password(password)
)
fcuser.save()
return render(request, 'register.html', res_data)
# 기본적으로 template폴더를 보기에 바로 작성 가능
# 만약에 template폴더 내부에 폴더를 생성한 다음에 파일을 만든다면
# foldername/register.html
# return render(request, 'register.html')
- 값을 안넣었을 때
- 비밀번호를 틀렸을 때
- 성공했을 때(아무처리르 안해주어서 아무것도 안뜬다)
4. 세션 구현
5. root 페이지 생성
-
root 폴더 안에 있는 urls.py에 경로 설정
- 아직 home이 없기 때문에 저장하면 오류가 난다
-
views.py에 home 생성
- 일단 단순하게 HttpResponse로 홈 구현(5장에 3번에서 오류처리할 때 사용)
-
로그인 성공하면 이동
-
user 정보가 제대로 저장되었는지 확인
6. 세션간단히 보기!
- 로그인을 하면 세션에 정보가 저장되면 아래와 같이 sessionid가 생긴다!
- 크롬 새 시크릿창에 동일한 주소로 들어가보기!
- 로그인을 하지 않았기 때문에 세션에 아무런 정보도 없다
7. 로그아웃 구현
- views.py
- urls.py에 등록
- 주소에 경로 설정하여 로그아웃하기
fcuser.id는 데이터베이스에 저장되고 있는 인덱스 번호입니다!
Author And Source
이 문제에 관하여(Django (8. 로그인(세션이란?, 구현)) feat.페스트캠퍼스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ansalstmd/Django-8.-로그인세션이란-구현-feat.페스트캠퍼스
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
root 폴더 안에 있는 urls.py에 경로 설정
- 아직 home이 없기 때문에 저장하면 오류가 난다
views.py에 home 생성
- 일단 단순하게 HttpResponse로 홈 구현(5장에 3번에서 오류처리할 때 사용)
로그인 성공하면 이동
user 정보가 제대로 저장되었는지 확인
- 로그인을 하면 세션에 정보가 저장되면 아래와 같이 sessionid가 생긴다!
- 크롬 새 시크릿창에 동일한 주소로 들어가보기!
- 로그인을 하지 않았기 때문에 세션에 아무런 정보도 없다
- 로그인을 하지 않았기 때문에 세션에 아무런 정보도 없다
7. 로그아웃 구현
- views.py
- urls.py에 등록
- 주소에 경로 설정하여 로그아웃하기
fcuser.id는 데이터베이스에 저장되고 있는 인덱스 번호입니다!
Author And Source
이 문제에 관하여(Django (8. 로그인(세션이란?, 구현)) feat.페스트캠퍼스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@ansalstmd/Django-8.-로그인세션이란-구현-feat.페스트캠퍼스
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Author And Source
이 문제에 관하여(Django (8. 로그인(세션이란?, 구현)) feat.페스트캠퍼스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ansalstmd/Django-8.-로그인세션이란-구현-feat.페스트캠퍼스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)