django 프레임 워 크 가 실 현 된 사용자 등록,로그 인,종료 기능 예시
1 사용자 등록:
from django.contrib import auth
from django.contrib.auth.models import User
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponseRedirect
#
@csrf_exempt
def register(request):
errors = []
account = None
password = None
password2 = None
email = None
CompareFlag = False
if request.method == 'POST':
if not request.POST.get('account'):
errors.append(' ')
else:
account = request.POST.get('account')
if not request.POST.get('password'):
errors.append(' ')
else:
password = request.POST.get('password')
if not request.POST.get('password2'):
errors.append(' ')
else:
password2 = request.POST.get('password2')
if not request.POST.get('email'):
errors.append(' ')
else:
email = request.POST.get('email')
if password is not None:
if password == password2:
CompareFlag = True
else:
errors.append(' ')
if account is not None and password is not None and password2 is not None and email is not None and CompareFlag :
user = User.objects.create_user(account,email,password)
user.save()
userlogin = auth.authenticate(username = account,password = password)
auth.login(request,userlogin)
return HttpResponseRedirect('/blog')
return render(request,'blog/register.html', {'errors': errors})
2 사용자 로그 인:
@csrf_exempt
def my_login(request):
errors =[]
account = None
password = None
if request.method == "POST":
if not request.POST.get('account'):
errors.append(' ')
else:
account = request.POST.get('account')
if not request.POST.get('password'):
errors = request.POST.get(' ')
else:
password = request.POST.get('password')
if account is not None and password is not None:
user = auth.authenticate(username=account,password=password)
if user is not None:
if user.is_active:
auth.login(request,user)
return HttpResponseRedirect('/blog')
else:
errors.append(' ')
else:
errors.append(' ')
return render(request,'blog/login.html', {'errors': errors})
3 사용자 종료:
def my_logout(request):
auth.logout(request)
return HttpResponseRedirect('/blog')
URL:
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^p/(?P<article_id>[0-9]+)/$', views.detail,name='detail'),
url(r'^register/$',views.register, name='register'),
url(r'^login/$',views.my_login, name='my_login'),
url(r'^logout/$',views.my_logout, name='my_logout'),
]
HTML 등록:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% if errors %}
<li>
{% for error in errors %}
<p style="color: red;">
{{error}}
</p>
{% endfor %}
</li>
{% endif %}
<table>
<form action="" method="post">{% csrf_token %}
<tr>
<td>
<label > :</label>
</td>
<td>
<input type = 'text' placeholder=" " name = 'account'>
</td>
</tr>
<tr>
<td>
<label > :</label>
</td>
<td>
<input type = 'password' placeholder=" " name = 'password'>
</td>
</tr>
<tr>
<td>
<label > :</label>
</td>
<td>
<input type = 'password' placeholder=" " name ='password2'>
</td>
</tr>
<tr>
<td>
<label> :</label>
</td>
<td>
<input type="email" placeholder=" " name = 'email'>
</td>
</tr>
<tr>
<td>
<input type = 'submit' placeholder="Login" value=" ">
</td>
</tr>
</form>
</table>
</body>
</html>
로그 인 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> </title>
</head>
<body>
{% if errors %}
<li>
{% for error in errors %}
<p style="color: red;">
{{error}}
</p>
{% endfor %}
</li>
{% endif %}
<table>
<form action="" method="post">{% csrf_token %}
<tr>
<td>
<label > :</label>
</td>
<td>
<input type = 'text' placeholder=" " name = 'account'>
</td>
</tr>
<tr>
<td>
<label > :</label>
</td>
<td>
<input type = 'password' placeholder=" " name = 'password'>
</td>
</tr>
<tr>
<td>
<input type = 'submit' placeholder="Login" value=" ">
</td>
</tr>
</form>
</table>
</body>
</html>
</body>
</html>
본 고 는 Django 프레임 워 크 를 바탕 으로 하 는 Python 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.