Language&Framework/Django
Django | 개념 정리_3주차_2. 회원가입,로그인 수정하기
JUNG씨
2022. 9. 27. 15:46
✅ 회원가입, 로그인 기능 수정하기 ✅
1. user앱의 views.py 수정하기 - 회원가입 기능
▪️회원가입 기능이 들어있는 sign_up_view 함수를 수정한다.
▪️회원가입 할 때, 이미 있는 유저인지 확인하기 위해 기능을 추가
from django.contrib.auth import get_user_model #사용자가 있는지 검사하는 함수
views.py 상단에 위 코드를 추가해주고 , sign_up_view 함수를 아래와같이 수정한다.
# Create your views here.
def sign_up_view(request):
if request.method == 'GET' :
return render(request, 'user/signup.html')
elif request.method == 'POST' : # signup.html에서 넘겨준 데이터를 받는다.
username = request.POST.get('username', None)
password = request.POST.get('password', None)
password2 = request.POST.get('password2', None)
bio = request.POST.get('bio', None)
#password 와 password2가 일치하는지 확인해주고,
if password != password2: #일치하지 않으면 다시 회원가입페이지로
return render(request, 'user/signup.html')
else:
exist_user = get_user_model().objects.filter(username=username)
if exist_user:
# 사용자가 존재하기 때문에 사용자를 저장하지 않고 회원가입페이지로 다시
return render(request, 'user/signup.html')
else:
UserModel.objects.create_user(username=username, password=password, bio=bio)
return redirect('/sign-in') # 저장완료(회원가입완료) 되었으면 로그인페이지로 이동
여러줄로 데이터를 넣고 save()했었는데 장고가 제공하는 기능으로 한줄로 정리가 되었다.
UserModel.objects.create_user(username=username, password=password, bio=bio)
2. user앱의 views.py 수정하기 - 로그인 기능
▪️ 아래 코드를 views.py 상단에 추가해준다. => 비밀번호까지 체크해주고, 로그인 기능까지 간단하게 가능.
from django.contrib import auth
▪️views.py의 sign_in_view 함수를 수정해준다.
def sign_in_view(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
me = auth.authenticate(request, username=username, password=password)
if me is not None: # 저장된 사용자의 패스워드와 입력받은 패스워드를 비교한다.
auth.login(request, me)
return HttpResponse("로그인 성공")
else: # 로그인 실패하면 다시 로그인 페이지 보여줌
return redirect('/sign-in')
elif request.method == 'GET':
return render(request, 'user/signin.html')