繼續上一篇,我們在繼續完成其他頁面設置之前,先把老師登錄后的頁面給創建出來,并且學生與老師不能互訪門戶,以及實現注銷功能。
回到【實戰演練】Python+Django網站開發系列02-Django完整開發環境部署,對于老師頁面,具有以下模塊。
1、需求分析
老師登錄后頁面包括如下功能:
1)個人信息:登錄后顯示老師個人信息,以及自己需要授課的課程名、上課時間、上課地點。
2)成績錄入:可以查看自己授課的課程下面的學生,并且可以錄入成績,成績僅能為0~100分,超出范圍會提示無效,可以多次修改成績。
3)修改密碼:修改用戶密碼
4)注銷:注銷后自動返回登錄頁面
其中注銷可以與學生的注銷共用,但是修改密碼不行,因為點擊修改密碼頁面后,學生的修改密碼頁面引用的是BASE02的導航頁,如果老師門戶的導航頁是BASE03,而修改密碼頁面共用,在老師門戶點擊“修改密碼”之后,就會跳轉到了BASE02頁去了,會出現BUG。
2、代碼開發
因此現在需要先創建BASE03,BASE03可以在BASE02基礎上復制粘貼修改,修改標簽與href后面跳轉的頁面
{%?.==?%}?{%?%}?個人信息{%?.==?%}?{%?%}?成績錄入{%?.==?%}?{%?%}?修改密碼注銷
然后創建老師個人信息、成績錄入,老師修改密碼3個html頁面,并且在view里面
(request): ????render_to_response(())
(request): ????render_to_response(())
(request): ????render_to_response(())
國際慣例,在views里面添加函數,在urls里面添加路由。
url(enterscore)url(tmopasswd)url(tchinfo)
然后訪問127.0.0.1:8000/index,用老師賬戶登錄看看是否能夠成功跳轉。
剩下需要做兩個事情:
1、注銷:
添加注銷的view函數,
(request): ????auth.logout(request) ????HttpResponseRedirect()
增加urls路由:
url(r'^logout/',?logout),
BASE02、03的注銷標簽綁定url
注銷
然后刷新,重新登錄,點擊注銷按鈕,發現可以跳轉回index.html登錄頁。
2、限制學生門戶的所有頁面不要給老師用戶登錄,老師門戶所有頁面
這個需要再在每個頁面前面增加裝飾器,判定登錄賬號的權限,來看看是否有權限進入頁面。permission_required后面填寫之前用戶組給予了的權限。
每個頁面都需要加這個@permission_required裝飾器。不同門戶的頁面添加學生或者老師的權限要求。
(==) (request): ????render_to_response(())
(==) (request): ????data?=?student.objects.all() ????render_to_response(())
測試:
不登錄,直接訪問頁面url如127.0.0.1:8000/queryscore,發現無法訪問,報錯如下:
使用老師賬號登錄,直接訪問url127.0.0.1:8000/queryscore,顯示403 無權限訪問。
使用學生賬號從index登錄,然后正常訪問queryscore頁面,訪問正常。
3、修改密碼頁面直接引用django admin的修改密碼
編輯mopasswd與tmopasswd.html,我們用iframe子框架來在我們的頁面里面嵌套django admin自帶的密碼修改。
{%?%} ????::{%?%}
然后修改views里面的函數,獲取當前登錄用戶session。
(request): ????username?=?request.session.get() ????render_to_response(())
(request): ????username?=?request.session.get() ????render_to_response(())
查看效果,發現iframe大小不夠,再回去手動調整iframe的width與height即可。
回顧:
1、我們實現了使用django admin自帶的用戶創建功能創建用戶;
2、實現了index與后臺數據庫交互進行用戶認證鑒權(使用django admin自帶的auth模塊),實現了登錄認證效果。
3、實現了學生登錄通過后重定向到學生門戶,老師登錄通過后重定向到老師門戶。
4、實現了注銷功能。
5、未登錄無法直接訪問所有子頁面。
6、學生無法訪問老師門戶任何頁面,同樣老師無法訪問學生門戶任何頁面,即使記住了url直接訪問。
7、實現了修改密碼。
至此,靜態頁面,導航欄,用戶登錄驗證,注銷,修改密碼,防止未登錄/無權限的用戶訪問頁面等功能都已經實現了。
下一篇開始,主要就剩下前端與后端與數據庫的交互 增、刪、改 了(查已經做了)。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
