在上一節的基礎上,我們已經引入了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...