一,準備工作:
1把html頁面放到指定位置:templates/user/login.html
"en">"
logindiv
">
2配置路由:
path('login
',views.login_view),
3編寫檢視函式:
deflogin_view(request):
return render(request,'
user/login.html
')
4瀏覽二先跑通基本登入:
deflogin_view(request):
if request.method == '
get'
:
return render(request,'
user/login.html')
elif request.method == '
post':
#先查使用者是不是存在
使用者名稱或密碼錯誤')
#使用者存在再比對密碼
使用者名稱或密碼錯誤')
#如果密碼比對成功,那麼就記錄會話狀態
--登入成功--
')
三完成記住使用者邏輯:
1)勾選上checkbox核取方塊後,瀏覽器會缺省會傳過來乙個remember=on,因此我們可以根據本次請求中有沒有remember這個key來判斷使用者有沒有勾選記住使用者:
#判斷使用者是否勾選了記住使用者名稱核取方塊,如果選了,我們就讓cookies儲存uid和username,時間為3天if'
remember'in
request.post:
resp.set_cookie(
'username
', username, 3600*24*3)
resp.set_cookie(
'uid
',user.id,3600*24*3)
2)既然已經用上session和cookies了,那麼邏輯上我們也要完善:
如果session存在就登入,如果session不存在我們就檢查cookie是否存在,如果cookies存在就回寫session並登入否則就給客戶展示登陸頁面
if request.method == 'get'
:
#檢查登入狀態
已登陸'
)
#如果session沒進去就檢查cookies
c_uname = request.cookies.get('
uname')
c_uid = request.cookies.get('
uid'
)
if c_uname and
c_uid:
#回寫session
已登入'
)
return render(request,'
user/login.html
')
3)最終完善的登入檢視邏輯如下:
deflogin_view(request):
if request.method == '
get'
:
#檢查登入狀態
已登陸'
)
#如果session沒進去就檢查cookies
c_uname = request.cookies.get('
uname')
c_uid = request.cookies.get('
uid'
)
if c_uname and
c_uid:
#回寫session
已登入'
)
return render(request,'
user/login.html')
elif request.method == '
post':
#先查使用者是不是存在
使用者名稱或密碼錯誤')
#使用者存在再比對密碼
使用者名稱或密碼錯誤')
#如果密碼比對成功,那麼就記錄會話狀態
--登入成功--')
#判斷使用者是否勾選了記住使用者名稱核取方塊,如果選了,我們就讓cookies儲存uid和username,時間為3天if'
remember'in
request.post:
resp.set_cookie(
'username
', username, 3600*24*3)
resp.set_cookie(
'uid
',user.id,3600*24*3)
return resp
第二章 2 0 Django 入門和開發環境
1.選擇 django web框架來做web介面開發,主要原因是由於學習資料豐富,便於學習。2.django 對 python 版本的支援情況。django 的版本在 1.8 1.9 1.11 1.10 的情況下,pyhon對應的版本可以使用 2.7,3.4 等版本。django 的版本在 2.0 ...
Django框架(小專案 網路雲筆記)
註冊介面 主頁設計規範 在index應用中寫 路由正則 檢視函式 模板位置說明 def index view request templates index index.html 主頁 登陸後 雲筆記設計規範 路由正則 檢視函式 模板位置 說明 note def list view request ...
Django 專案筆記
django 環境的搭建 django 安裝pip install django 2.1.4django 建立專案django admin startproject mysitedjango 建立應用 django 啟動專案python manage.py runserver ip portdjan...