django는 사용자의 로그인과 로그아웃을 실현합니다 (session)

2631 단어 django
먼저 User 데이터 모델을 생성합니다.
class User(models.Model):
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=20)
    email = models.CharField(max_length=40)

사용자 등록
뷰에서
def register(request):
    message= "right"
    if request.method == "POST":
        Username = request.POST.get('username')
        Password = request.POST.get('password')
        Email = request.POST.get('email')
        user = User()

        try:
            if User.objects.get(username=Username):
                message = "      "
                return render(request, 'register.html', {'m':message})
        except:
            user.username = Username

        user.password = Password

        try:
            if User.objects.get(email=Email):
                message = "     "
                return render(request, 'register.html', {'m':message})
        except:
            user.email = Email
        user.save()
        send_register_email(Email)
        return render(request, 'success.html', {'user': user})

    return render(request, 'register.html', {'m':message})

전단에서 등록 정보의 표를 전송하기만 하면 된다
사용자 로그인
뷰에서
def login(request):
    if request.method=='GET':
        return render(request,'login.html')
    else:
        name=request.POST.get('name')
        pwd=request.POST.get('pwd')
        user = User.objects.filter(username=name, password=pwd).first()
        if user:
            request.session['name']=user.username 
            return redirect('/account/index')
        else:
            return render(request,'login.html',{'msg':"   /    "})

 request.session['name']=user.username :

1. sessionID

2. sessionID

3. cookie sessionID

sessionID , 。

view

def logout(request):
    del request.session['name']
    return redirect('/account/index')
sessionID , del request.session['name']






좋은 웹페이지 즐겨찾기