django 사용자 등록, 로그인, 종료 실현

5800 단어 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[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을 등록하려면 다음과 같이 하십시오.



    
    Title



{% if errors %}
        
  • {% for error in errors %}

    {{error}}

    {% endfor %}
  • {% endif %} {% csrf_token %}

    로그인 HTML:
    
    
    
        
        Title
    
    
    
    
    
        
          
    
    
    
    {% if errors %}
            
  • {% for error in errors %}

    {{error}}

    {% endfor %}
  • {% endif %} {% csrf_token %}

     

    좋은 웹페이지 즐겨찾기