1. 程式人生 > >用戶認證系統

用戶認證系統

bsp func 系統 render djang 說明 word django save

一 導入auth模塊

from django.contrib.auth.models import User
from django.contrib import auth

auth模塊的操作針對的就是auth_user表

二 auth模塊的方法

  1 authenticate() 用戶驗證函數。驗證成功,返回一個名稱為用戶登錄名的User對象,這個對象可以調用auth_user表中的屬性。驗證失敗,返回None。

def login(request):
    if request.method==POST:
        username=request.POST.get(
username) password=request.POST.get(password) user=auth.authenticate(username=username,password=password) print(user,type(user)) return render(request,login.html) return render(request,login.html)

  輸出:

zuo <class django.contrib.auth.models.User
>

  2 login(request,user) 記錄session功能

 user=auth.authenticate(username=username,password=password)
        if user:
            auth.login(request,user)
            return redirect(/index/)

  3 logout(request) 註銷

  核心 代碼 request.session.flush()

 auth.logout(request)

  PS request.user。獲取當前登錄的用戶,返回值是一個對象。 用在index頁面。確定當前是否有用戶登錄。如果不是匿名,說明login登錄成功。如果是匿名,說明login登錄不成功,跳轉login頁面。

  一個AUTH_USER_MODEL 類型的對象,表示當前登錄的用戶。如果用戶當前沒有登錄,user 將設置為django.contrib.auth.models.AnonymousUser 的一個實例。你可以通過is_authenticated() 區分它們。

  user 只有當Django 啟用AuthenticationMiddleware 中間件時才可用。

  沒有用戶時:

def index(request):

    username=request.user
    print(username,type(username))

  輸出:

AnonymousUser <class django.utils.functional.SimpleLazyObject>

  有用戶時:

  輸出

zuo <class django.utils.functional.SimpleLazyObject>

三 User對象的API

  1 is_authenticated() 返回布爾值,判斷用戶是否登錄

  2 創建新用戶

    User.objects.create_user(username=‘‘,password=‘‘)

  3 修改密碼

    user=User.objects.get(username=‘xx‘)

    user.set_password(‘新密碼‘) user是對象

    user.save()

用戶認證系統