Django中的驗證|登入|登出 函式--views中匯入django.contrib.auth authenticate()|login()|logout()。
阿新 • • 發佈:2018-12-12
django.contrib.auth中的authenticate()|login()|logout()函式使用。
驗證|登入|登出 函式
authenticate()--登入認證:
接受兩個引數,使用者名稱|username 密碼|password
合法的情況下返回一個User物件。不合法,返回None。
用is not None else 判斷是否驗證成功.
語法:user=auth.authenticate(username=name,password=pwd)
login()--使用者登入:
接受兩個引數request物件和一個User物件
並自動儲存session與cookie
語法:auth.login(request,user)
logout()--登出使用者:
它接受一個request物件並且沒有返回值,所以,需要返回一個頁面。
語法:auth.logout(request)
示例 登入認證+登入設定:
def login(request): if request.method =='GET': # get請求返回登入頁面 return render(request,'login.html') if request.method =='POST': # post請求接受驗證資料 uname = request.POST.get('uname') upwd = request.POST.get('upwd') user=auth.authenticate(username=uname,password=upwd) if user is not None and user.is_active: # 驗證通過返回首頁 auth.login(request,user) # session cookie return render(request,'index.html') else: # 驗證不通過返回登入頁面提示資訊 return render(request,'login.html',{'msg':'使用者名稱或密碼錯誤'})
示例 登出使用者:
def logot(request):
# 登出當前使用者並返回首頁
auth.logout(request)
return render(request,'index.html')