장고는 회원관리가 기본으로 제공된다(최고!!)
회원가입부터 만들어보자꾸나
py .\manage.py startapp user
/user/views.py
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.shortcuts import redirect,render
# Create your views here.
def signup(request):
if request.method == 'POST':
signupForm = UserCreationForm(request.POST)
if signupForm.is_valid():
signupForm.save()
return redirect('/user/login')
else:
signupForm = UserCreationForm()
return render(request,'user/signup.html',{'signupForm':signupForm})
urls.py > urlpatterns 에 회원가입 추가 path('user/signup',user.views.signup),
회원가입 템플릿 추가
signup.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>회원 가입</title>
</head>
<body>
<form method="post">
{% csrf_token %}
{{ signupForm }}
<input type="submit" name="회원가입">
</form>
</body>
</html>
다음은 로그인이다
내가 login으로 함수를 선언했는데 이미 장고에서 login 함수가 있다 그래서 그 함수를 나는 auth_login으로 변경하여 사용하겠다고 선언하는것이다.
#상단에 추가
from django.contrib.auth import login as auth_login
#이거
#로그인함수
def login(request):
if request.method == 'POST':
loginForm = AuthenticationForm(request,request.POST)
if loginForm.is_valid():
auth_login(request,loginForm.get_user())
return redirect('/board/list')
else:
return redirect('/user/login')
else:
loginForm = AuthenticationForm()
return render(request,'user/login.html',{'loginForm':loginForm})
로그아웃도 동일하다.
from django.contrib.auth import logout as auth_logout
def logout(request):
auth_logout(request)
return redirect('/user/login')
728x90
반응형