django – 로그인 확인
Django:1.10 Python:3.6
내장 User를 AbstractUser 방식으로 확장
# models.py model
from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.
class UserProfile(AbstractUser):
#
nick_name = models.CharField(max_length = 50, verbose_name = u" ", default="")
Note: 내장된 User는username과password가 있습니다. 이 두 가지를 검증하려면
# admin.py model
from django.contrib import admin
from logre.models import UserProfile
admin.site.register(UserProfile)
authenticate에서 사용자 검증
Note:주의해야 할 것은authenticate는 단지 검증일 뿐입니다.login()을 따로 사용하여 로그인을 하고session에 가입하여 로그인 상태를 유지해야 합니다. 이session 정보를 어떻게 얻는지 배워야 합니다.
from django.shortcuts import render
from django.contrib import auth
def login(request):
if request.method == 'POST':
input_number = request.POST['input_username']
input_pwd = request.POST['input_pwd']
#
user = auth.authenticate(username=input_number,password=input_pwd)
if user is not None and :
#
now_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
user.last_login = now_time
user.save()
auth.login(request,user)
return render(request,'index.html')
return render(request,'login.html')
위 판단에 나타난
user.is_active
는 사용자 이름 비밀번호가 유효한지 판단하는 데 쓰인다물론 다른 html 페이지와 url 설정은 여기에 설명이 많지 않다
취소
로그인 얘기가 나온 이상 로그아웃은 여기에 함께 기록합니다
login () 처럼,auth에도 logout () 함수가 있습니다.
# views.py
from django.contrib import auth
def logout_view(request):
auth.logout(request)
return HttpResponseRedirect("/login/")
상응하는 URL을 설정해야 합니다
FAQ
때때로 데이터베이스에username과password가 존재하지만 authenticate는 일치하지 않습니다. None 값을 되돌려주면 다음과 같은 방법으로 해결할 수 있습니다.
login() takes 1 positional argument but 2 were given
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.