2 4 2 Django處理登入和登出

2022-03-11 01:41:56 字數 1355 閱讀 6172

在上一節的基礎上,我們已經引入了django.contrib.auth應用,我們就可以在view函式中判斷使用者是否已經登入以及獲取使用者資訊:

if request.user.is_authenticated():     #判斷使用者是否已登入 

user = request.user;            #獲取已登入的使用者 

else:    

user = request.user;            #非登入使用者將返回anonymoususer物件

django的user物件提供了一系列的屬性和方法,其中password儲存的是加密後的密碼,is_staff記錄使用者是否有管理員許可權,其他的屬性可以參考官方文件。同時django.contrib.auth模組中提供了authenticate()、login()、logout()等函式,分別實現認證、登入、登出等功能。

django還為我們提供了內建的處理login、logout的view函式,也可以按需要自己實現view函式。

下面就開始修改urls.py,views.py,base.html吧

urls.py中的配置:

from myoss.views import login_view,logout_view 

urlpatterns = patterns('', 

(r'^accounts/login/$', login_view), 

(r'^accounts/logout/$', logout_view),

views.py中的login_view和logout_view函式定義:

from django.contrib.auth import authenticate,login,logout 

def login_view(request):     

user=authenticate(username=request.post['username'], password=request.post['password']) 

if user is not none: 

login(request, user)     

print request.user   

return list_product(request) 

else: 

#驗證失敗,暫時不做處理 

return store_view(request) 

def logout_view(request): 

logout(request) 

return store_view(request)

ü  base.html中實現的簡單登入表單  

登入上面的東西簡單看看就好,看下django自帶模板對變數,邏輯處理的方式就可以了。

django 登入和session過期跳轉

這裡需要說名一下,使用的是django自帶的session封裝技術,是在設定了request.session username username 之後,才會在mysql的session 表中生成資料,並且session key是儲存在cookie裡面的,也就是說,一台計算機上同乙個瀏覽器 就算雙開兩...

Django使用者登入和登出(一)

基於函式和標準前端 1 寫好views.py函式 django.contri.auth 內建authenticate,login logout。authenticate能驗證使用者資訊是否正確,成功返回該使用者,否則返回none login,logout分別用於登入和登出 from django.s...

Django登入使用的技術和元件

登入 獲取使用者所有的資料 每條資料請求的驗證 成功之後獲取所有正確的資訊 失敗則顯示錯誤資訊 登陸頁面管理 def login request if request.method get return render request,login.html elif request.method po...