Django的session中對於使用者驗證的支援

2022-09-27 04:06:12 字數 1468 閱讀 8444

使用者與authentication

通過session,我們可以在多次瀏覽器請求中保持資料, 接下來的部分就是用session來處理使用者登入了。 當然,不能僅憑使用者的一面之詞,我們就相信,所以我們需要認證。

當然了,django 也提供了工具來處理這樣的常見任務(就像其他常見任務一樣)。 django 使用者認證系統處理使用者帳號,組,許可權以及基於cookie的使用者會話。 這個系統一般被稱為 auth/auth (認證與授權)系統。 這個系統的名稱同時也表明了使用者常見的兩步處理。 我們需要

驗證 (認證) 使用者是否是他所宣稱的使用者(一般通過查詢資料庫驗證其使用者名稱和密碼)

驗證使用者是否擁有執行某種操作的 授權 (通常會通過檢查乙個許可權表來確認)

根據這些需求,django 認證/授權 系統會包含以下的部分:

使用者 : 在**註冊的人

許可權 : 用於標識使用者是否可以執行某種操作的二進位制(yes/no)標誌

程式設計客棧;   組 :一種可以將標記和許可權應用於多個使用者的常用方法

messages : 向使用者顯示佇列式的系統訊息的常用方法

如果你已經用了admin工具(詳見第6章),就會看見這些工具的www.cppcns.com大部分。如果你在admin工具中編輯過使用者或組,那麼實際上你已經編輯過授權系統的資料庫表了。

開啟認證支援

像session工具一樣,認證支援也是乙個d程式設計客棧jango應用,放在 django.contrib 中,所以也需要安裝。 與session系統相似,它也是預設安裝的,但如果它已經被刪除了,通過以下步驟也能重新安裝上:

根據本章早前的部分確認已經安裝了session 框架。 需要確認使用者使用cookie,這樣sesson 框架才能正常使用。

將 'django.contrib.auth' 放在你的 installed_apps 設定中,然後執行 manage.py syncdb以建立對應的資料庫表。

確認 sessionmiddleware 後面的 middleware_classes 設定中包含 'django.contrib.auth.middleware.authenticationmiddleware' sessionmiddleware。

這樣安裝後,我們就可以在檢視(view)的函式中處理user了。 在檢視中訪問users,主要用 request.user ;這個物件表示當前已登入的使用者。 如果使用者還沒登入,這就是乙個anonymoususer物件(細節見下)。

你可以很nrfnae容易地通過 is_authenticated() 方法來判斷乙個使用者是否已經登入了:

if request.user.is_authenticated():

# do something for authenticated users.

else:

# do something for anonymous users.

本文標題: django的session中對於使用者驗證的支援

本文位址: /jiaoben/python/128537.html

Django中session的使用

1 存在於服務端的鍵值對 2同乙個瀏覽器不允許登入多個賬戶,不同瀏覽器可以登入同乙個賬戶 3session的使用 必須遷移資料 增 request.session name lqz 查 request.session name 改 request.session name egon 刪 del re...

Django中session和cookie的用法

session 存在伺服器端,用request物件進行設定 設定session 在後端寫入 request.session money 100 缺省會在cookie中產生乙個sessionid 獲取session值 只能在後端獲取 print request.session.get money co...

Django中session進行許可權管理的使用

目錄 當session啟用後,傳遞給檢視request引數的httprequest物件將包含乙個session屬性,就像乙個字典物件一樣。你可以在django的任何地方讀寫request.session屬性,或者多次編輯使用它。這個檔案在我的c users 17764530215 test mysi...