python manage.py startapp accounts
INSTALLED_APPS = [
'community',
'accounts']
path('accounts/',include('accounts.urls')),
LOGIN
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import get_user_model
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = get_user_model()
fields = ('email','first_name','last_name')
urlpatterns = [
path('login/',views.login,name='login')]
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import login as auth_login
def login(request):
if request.user.is_authenticated:
return redirect('community:index')
if request.method=="POST":
form = AuthenticationForm(request,request.POST)
if form.is_valid():
auth_login(request,form.get_user)
return redirect(request.GET.get('next') or 'community:index')
else:
form = AuthenticationForm()
context ={
'form':form
}
return render(request,'accounts/login.html',context)
{% extends 'base.html' %}
{% block content %}
<h1>LOG-IN</h1>
<form action="" method="POST">
{% csrf_token %}
{{form.as_p}}
<input type="submit">
</form>
{% endblock content %}
SIGN-UP
path('signup/',views.signup,name='signup'),
from django.contrib.auth.forms import UserCreationForm
def signup(request):
if request.user.is_authenticated:
return redirect('community:index')
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
auth_login(request,user)
return redirect('community:index')
else:
form = UserCreationForm()
context={
'form':form
}
return render(request,'accounts/signup.html',context)
{% extends 'base.html' %}
{% block content %}
<form action="" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
{% endblock content %}
LOG-OUT
path('logout/',views.logout,name='logout')
from django.contrib.auth import logout as auth_logout
def logout(request):
if request.user.is_authenticated:
auth_logout(request)
return redirect('community:index')
데코레이터 사용법
from django.views.decorators.http import require_http_methods
@require_http_methods(['POST','GET'])
def login(request):
@require_http_methods(['POST','GET'])
def signup(request):