Django框架之 使用者認證auth模組

2021-10-25 06:26:21 字數 2408 閱讀 4041

我們在開發乙個**時, 無法避免的需要設計**的使用者系統, 此時我們需要實現包括使用者註冊,登入,認證,登出,修改密碼等功能,把這些事全部寫一遍也挺麻煩的,

django作為乙個完美主義的終極框架, 也當然會為使用者想到這些痛點,它內建了強大的使用者認證系統,預設使用auth_user表來儲存使用者資料

auth模組的使用

常用內建方法

authenticate(

) 使用者認證,一般校驗使用者和密碼,嚴謹一點多新增乙個郵箱

login(

) 任證後的登入物件

logout(

) 退出登入

is_authenticated(

) 判斷使用者是否通過認證

login_requierd(

) 登入認證裝飾器

create_user(

) 建立普通使用者

create_superuser(

) 建立管理員使用者

check_password(

) 校驗密碼

set_password(

) 設定、修改 密碼

user物件的屬性,

建立使用者

python manage.py createsuperuser

兩個模組一般結合使用,如下:

匯入模組

from django.contrib.auth import authenticate,login

defuser_login

(request)

:if request.method ==

"get"

:return render(request,

'login.html'

)else

: name = request.post.get(

"name"

) pwd = request.post.get(

"password"

)# 校驗使用者名稱和密碼,

user = authenticate(username=name,password=pwd)

if user:

# 通過後新增到全域性, 後期所有地方都可以呼叫到這個物件

login(request,user)

return redirect(

'base'

)else

:return render(request,

'login.html'

)成功後定向到這個頁面(首頁)

defbase

(request)

:return render(request,

'base.html'

)先建立模板login.html和base.html檔案。

到這裡已經學完auth模組的所有常用方法, 感覺不過如此, 繼續前行吧!!

is_superuser:是否是超級管理員(如果is_staff=

1,可以任意增刪查改任何表資料)

is_active : 是否允許使用者登入, 設定為 false,可以在不刪除使用者的前提下禁止使用者登入(三次密碼輸入錯誤禁用使用者)

這內建的認證系統那麼好用, 但是auth_user表字段都是固定的那幾個, 在專案無法直接使用, 裡面的字段遠遠無法滿足對專案的需求,在此。

聰明的你可能會想到新建另外一張表通過一對一和內建的auth_user表關聯,這樣雖然滿足了需求,但也很麻煩, 這樣

我們可以通過繼承內建的abstractuser類, 來定義乙個自己的model類

這樣既能根據專案需求靈活的設計使用者表,又能後使用django強大的認證系統, 豈不美哉。

1 內建的auth_user表,要加欄位,加不了,擴充套件該錶

-方式一:一對一

-方式二,通過繼承

# 方式二:通過繼承,一定要記住再setting中配置

## 重點:使用這種方式,一開始就要用

from django.contrib.auth.models import abstractuser

class

user

(abstractuser)

:# id=models.autofield(primary_key=true)

# username = models.charfield(max_length=128)

phone = models.charfield(max_length=32)

addr = models.charfield(max_length=32)

注意: 一定要在配置模組中新增如下常量配置(重點)

## setting.py中

auth_user_model =

完!!

django元件之使用者認證元件

匯入語法 fromdjango.contribimportauth django.contrib.auth中提供了許多方法,這裡主要介紹其中的三個 這些都是基於使用auth user這張表的前提的 提供使用者認證的功能,當認證成功之後會返回乙個物件,沒有返回none 一般需要倆兩個引數,userna...

Django學習之使用者登入

前面說了,使用者註冊,今天我們就來說說使用者登入吧。今天說的是使用django的session功能,而不是它的auth模組,後期,如果有機會的話,我再寫點auth認證登入。其實重點就是request.session功能,預設django就將其session功能開啟了,我們僅僅需要的是配置下資料庫。w...

Django之使用者登入例項

1,django目錄結構 需要用到的檔案用紅箭頭標記 2,首先在templates模版目錄下建立login.html檔案 3,將bootstrap匯入到static plugins目錄下 ps bootstrap是twitter推出的乙個用於前端開發的開源工具包,有很豐富的前端各種案例 4,首先在t...