1. 程式人生 > >Django中的驗證|登入|登出 函式--views中匯入django.contrib.auth authenticate()|login()|logout()。

Django中的驗證|登入|登出 函式--views中匯入django.contrib.auth authenticate()|login()|logout()。

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')