Django 등록의makepassword () 암호화 및 로그인 checkpassword () 복호화 및 메일박스 발송 검증 활성화
4800 단어 Django
import re from django.contrib.auth.hashers import make_password,check_password from django.core.mail import send_mail from django.conf import settings
등록된 테이블 열 보기는 다음과 같습니다.
class RegsterView(View):
''' '''
def get( self, request):
'''' '''
return render(request, 'register.html')
def post( self, request ):
''' '''
# ,
allow = request.POST.get('allow')
if allow != 'on': #allow -->on,
return render(request, 'register.html',{'error':' '})
# , ,email ,
user_name = request.POST.get("user_name")
pwd = request.POST.get("pwd")
cpwd = request.POST.get("cpwd")
email = request.POST.get("email")
if not all([user_name,pwd,cpwd,email]):
return render(request, 'register.html',{'error':' '})
u = models.USer.objects.filter(username = user_name).first()
# , user filter() ,
if u:
return render(request, 'register.html',{'error':' '})
#
if pwd != cpwd:
return render(request, 'register.html',{'error':' '})
#
if not re.match ( '^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', email ):
return render ( request, 'register.html', {'error': ' '} )
# user ,
u = models.USer()
u.username = user_name
u.password = make_password(pwd)
u.email = email
u.save()
#
'''/*
setting.py :
# 163
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com' #
EMAIL_PORT = 25 #
#
EMAIL_HOST_USER = ' ' #
EMAIL_HOST_PASSWORD = ' ' #
#
EMAIL_FORM = ' '
*/'''
title = ' ' #
#
message = '활성화'.format(u.id)
#send_mail() , : : : , :
#html_message html , 。
send_mail (title, message, settings.EMAIL_FORM, [email], html_message=message)
return render (request, 'register.html', {'error': ' '})
메일박스가 발송되었습니다. 데이터베이스에서 활성화된 상태를 다시 부여해야 합니다.
class Email(View):
''' '''
def get( self ,request):
'''*
ID
user
user default=1
save() 。
*'''
user_id =request.GET.get("user_id")
u = models.USer.objects.filter(id=user_id).first()
if not u:
return HttpResponse(" ")
u.is_status = 1
u.save()
return redirect( 'user:login')
저희 상태가 활성화되면 계정이 사용 가능함을 증명합니다. 이제 로그인을 시도하고 비밀번호를 해석하며 판단을 진행합니다.
class Login(View):
def get( self, request):
''' '''
return render(request, 'login.html')
def post( self, request):
''' '''
'''
*
, user
check_password(pwd,pwd) , , True
, False 。
*
'''
username = request.POST.get('username')
pwd = request.POST.get('pwd')
user_name=models.USer.objects.filter(username=username).first()
if not user_name:
return render(request, 'login.html', {"error":' '})
if check_password(pwd,user_name.password):
return render(request, 'login.html', {"error":' '})
return render(request, 'index.html', {"error":' '})
물론 이것은 가장 간단한 등록 로그인 논리입니다. 참고만 하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.