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":'    '})

물론 이것은 가장 간단한 등록 로그인 논리입니다. 참고만 하세요!

좋은 웹페이지 즐겨찾기