国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解Django之auth模塊(用戶認證)

2020-02-22 23:41:13
字體:
來源:轉載
供稿:網友

auth模塊簡介

auth模塊是對登錄認證方法的一種封裝,之前我們獲取用戶輸入的用戶名及密碼后需要自己從user表里查詢有沒有用戶名和密碼符合的對象,

而有了auth模塊之后就可以很輕松的去驗證用戶的登錄信息是否存在于數據庫中。

除此之外,auth還對session做了一些封裝,方便我們校驗用戶是否已登錄

auth里的方法

如果想使用auth模塊的方法,必須要先導入auth模塊

from django.contrib import auth

django.contrib.auth中提供了許多方法,這里主要介紹其中的四個:

1 、authenticate()  

提供了用戶認證,即驗證用戶名以及密碼是否正確,一般需要username  password兩個關鍵字參數

如果認證信息有效,會返回一個  User  對象。authenticate()會在User 對象上設置一個屬性標識那種認證后端認證了該用戶,且該信息在后面的登錄過程中是需要的。當我們試圖登陸一個從數據庫中直接取出來不經過authenticate()的User對象會報錯的!!

user = authenticate(username='someone',password='somepassword')

2 、login(HttpRequest, user)

該函數接受一個HttpRequest對象,以及一個認證了的User對象

此函數使用django的session框架給某個已認證的用戶附加上session id等信息。

from django.contrib.auth import authenticate, login  def my_view(request):  username = request.POST['username']  password = request.POST['password']  user = authenticate(username=username, password=password)  if user is not None:    login(request, user)    # Redirect to a success page.    ...  else:    # Return an 'invalid login' error message.    ...

3 、logout(request) 注銷用戶

該函數接受一個HttpRequest對象,無返回值。當調用該函數時,當前請求的session信息會全部清除。該用戶即使沒有登錄,使用該函數也不會報錯。

from django.contrib.auth import logout  def logout_view(request):  logout(request) # Redirect to a success page.

4 、user對象的 is_authenticated()

要求:

1  用戶登陸后才能訪問某些頁面,

2  如果用戶沒有登錄就訪問該頁面的話直接跳到登錄頁面

3  用戶在跳轉的登陸界面中完成登陸后,自動訪問跳轉到之前訪問的地址

方法1:

直接用auth的is_authenticated()方法驗證

def my_view(request):   if not request.user.is_authenticated():      return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))

方法2:

根據request.user.username來驗證,如果為空,則說明沒有登錄

def my_view(request):   if not request.user.username:      return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋宁县| 根河市| 措勤县| 阿城市| 监利县| 兖州市| 关岭| 临澧县| 扎兰屯市| 沁水县| 曲阜市| 清流县| 茌平县| 什邡市| 瓮安县| 吴旗县| 苗栗市| 黔西| 莱芜市| 明水县| 海宁市| 黄大仙区| 尉犁县| 黎平县| 伊通| 芜湖县| 贵定县| 当雄县| 兴文县| 龙门县| 榆中县| 军事| 关岭| 临武县| 长垣县| 克拉玛依市| 高淳县| 义马市| 兖州市| 会同县| 芦溪县|