Django的session中對于用戶驗(yàn)證的支持
用戶與Authentication
通過session,我們可以在多次瀏覽器請求中保持?jǐn)?shù)據(jù), 接下來的部分就是用session來處理用戶登錄了。 當(dāng)然,不能僅憑用戶的一面之詞,我們就相信,所以我們需要認(rèn)證。
當(dāng)然了,Django 也提供了工具來處理這樣的常見任務(wù)(就像其他常見任務(wù)一樣)。 Django 用戶認(rèn)證系統(tǒng)處理用戶帳號(hào),組,權(quán)限以及基于cookie的用戶會(huì)話。 這個(gè)系統(tǒng)一般被稱為 auth/auth (認(rèn)證與授權(quán))系統(tǒng)。 這個(gè)系統(tǒng)的名稱同時(shí)也表明了用戶常見的兩步處理。 我們需要
驗(yàn)證 (認(rèn)證) 用戶是否是他所宣稱的用戶(一般通過查詢數(shù)據(jù)庫驗(yàn)證其用戶名和密碼)
驗(yàn)證用戶是否擁有執(zhí)行某種操作的 授權(quán) (通常會(huì)通過檢查一個(gè)權(quán)限表來確認(rèn))
根據(jù)這些需求,Django 認(rèn)證/授權(quán) 系統(tǒng)會(huì)包含以下的部分:
用戶 : 在網(wǎng)站注冊的人
權(quán)限 : 用于標(biāo)識(shí)用戶是否可以執(zhí)行某種操作的二進(jìn)制(yes/no)標(biāo)志
組 :一種可以將標(biāo)記和權(quán)限應(yīng)用于多個(gè)用戶的常用方法
Messages : 向用戶顯示隊(duì)列式的系統(tǒng)消息的常用方法
如果你已經(jīng)用了admin工具(詳見第6章),就會(huì)看見這些工具的大部分。如果你在admin工具中編輯過用戶或組,那么實(shí)際上你已經(jīng)編輯過授權(quán)系統(tǒng)的數(shù)據(jù)庫表了。
打開認(rèn)證支持
像session工具一樣,認(rèn)證支持也是一個(gè)Django應(yīng)用,放在 django.contrib 中,所以也需要安裝。 與session系統(tǒng)相似,它也是缺省安裝的,但如果它已經(jīng)被刪除了,通過以下步驟也能重新安裝上:
根據(jù)本章早前的部分確認(rèn)已經(jīng)安裝了session 框架。 需要確認(rèn)用戶使用cookie,這樣sesson 框架才能正常使用。
將 'django.contrib.auth' 放在你的 INSTALLED_APPS 設(shè)置中,然后運(yùn)行 manage.py syncdb以創(chuàng)建對應(yīng)的數(shù)據(jù)庫表。
確認(rèn) SessionMiddleware 后面的 MIDDLEWARE_CLASSES 設(shè)置中包含 'django.contrib.auth.middleware.AuthenticationMiddleware' SessionMiddleware。
這樣安裝后,我們就可以在視圖(view)的函數(shù)中處理user了。 在視圖中存取users,主要用 request.user ;這個(gè)對象表示當(dāng)前已登錄的用戶。 如果用戶還沒登錄,這就是一個(gè)AnonymousUser對象(細(xì)節(jié)見下)。
你可以很容易地通過 is_authenticated() 方法來判斷一個(gè)用戶是否已經(jīng)登錄了:
if request.user.is_authenticated(): # Do something for authenticated users. else: # Do something for anonymous users.
相關(guān)文章
Python解方程組 scipy.optimize.fsolve()函數(shù)如何求解帶有循環(huán)求和的方程式
這篇文章主要介紹了Python解方程組 scipy.optimize.fsolve()函數(shù)如何求解帶有循環(huán)求和的方程式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06Python實(shí)現(xiàn)批量導(dǎo)入1000條xlsx數(shù)據(jù)
本文主要介紹了Python實(shí)現(xiàn)批量導(dǎo)入1000條xlsx數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Linux環(huán)境下MySQL-python安裝過程分享
這篇文章主要介紹了Linux環(huán)境下MySQL-python安裝過程分享,本文使用的編譯方式安裝,需要的朋友可以參考下2015-02-02python list 切片倒著取的實(shí)現(xiàn)示例
切片操作非常靈活,可以按照需要獲取列表中的任意一段元素,本文主要介紹了python list 切片倒著取的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01python實(shí)現(xiàn)復(fù)制文件到指定目錄
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)復(fù)制文件到指定的目錄下,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10Python實(shí)現(xiàn)前端樣式尺寸單位轉(zhuǎn)換
在?Web?前端項(xiàng)目開發(fā)時(shí),樣式尺寸都是以?rpx?為單位,可是?UI?設(shè)計(jì)師在看完開發(fā)后的?UI?,卻要求都以?px?為單位,所以本文就和大家分享一個(gè)利用Python就能實(shí)現(xiàn)尺寸單位轉(zhuǎn)換的方法吧2023-06-06