django login 및 log

2827 단어
Django의 로그인 및 로그아웃 인증
1. 사용자가 입력한 계정과 비밀번호를 받는다
	username = request.POST.get('username')
    password = request.POST.get('password')
    if not all([username,password]):
        return redirect(reverse('car:index'))

여기에 만약에 사용자가 계정이나 비밀번호를 잃지 않았다면 우리는 한 페이지로 돌아갑니다. 이곳의 카:index는 바로 제가 직접 쓴 간단한 페이지입니다. 페이지는 마음대로 쓸 수 있습니다.
2. 받은 계정과 비밀번호를 데이터베이스에 입력하여from django를 검사합니다.contrib.auth import authenticate,login,logout user = authenticate(username = username,password = password)
3. 로그인 작업
if user is not None and user.is_active:
            login(request, user)
            request.session['username'] = user.username

            print(request.session.get('username','  '))

            # return redirect(reverse('car:index'))
            return render(request,'xxx.html')

        else:
            # Show an error page
            return HttpResponse('false')

여기에서 사용자가 입력한username을session에 저장하고 이session을 출력합니다. 터미널에서 볼 때, 장씨를 기본적으로 출력하지 않으면, 사용자가 입력한username을 가져오면 로그인에 성공한 것입니다.
4. 로그아웃 작업
class LogoutView(View):
    def get(self,request):
        
        print(request.session.get('username', '  '))
        logout(request)

        print(request.session.get('username', '  '))
        
        return HttpResponse('    ')

logout에 들어가기 전에session을 출력하고 logout 다음에session을 출력합니다. 만약 첫 번째username가 사용자가 입력한username이고 두 번째는 장씨라면 로그인에 성공한 것입니다.
전체 코드: class LoginView(View):
def post(self,request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    if not all([username,password]):
        return redirect(reverse('car:index'))
    #    
    user = authenticate(username = username,password = password)

    print(user.password)

    if user is not None and user.is_active:
        login(request, user)
        request.session['username'] = user.username

        print(request.session.get('username','  '))

        # return redirect(reverse('car:index'))
        return render(request,'xxx.html')

    else:
        # Show an error page
        return HttpResponse('false')
        
class LogoutView(View):
    def get(self,request):
        
        print(request.session.get('username', '  '))
        logout(request)

        print(request.session.get('username', '  '))
        
        return HttpResponse('    ')

url:
urlpatterns = [    
    url(r'^login',LoginView.as_view(),name='login'),
    url(r'^logout',LogoutView.as_view(),name='logout'),      
]

좋은 웹페이지 즐겨찾기