本文實例講述了Django框架首頁和登錄頁分離操作。分享給大家供大家參考,具體如下:
1.登錄模板login.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < title >用戶登錄</ title > </ head > < body > < form method = "post" > < p >用戶名:< input type = "text" name = "username" ></ p > < p >密碼:< input type = "password" name = "pwd" ></ p > < p >< input type = "submit" value = "提交" ></ p > < hr > </ form > < p > {{ result }}</ p > </ body > </ html > |
2.URL設置
1
|
url(r '^login/' , "hello.views.login" ) |
表示瀏覽器訪問login,就指向hello應用下views文件下login方法
3.在login方法下響應login模板和完成登錄功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def login(request): msg = { 'result' : ''} if request.method = = 'POST' : getUserName = request.POST.get( 'username' ) getPwd = request.POST.get( 'pwd' ) # 實例化UserLogin類 loginObj = UserLogin(getUserName,getPwd) if loginObj.isLogin(): myReponse = HttpResponse( "<script>self.location='/index'</script>" ) myReponse.set_cookie( 'userlogin_username' ,getUserName, 3600 ) return myReponse else : msg[ 'result' ] = '用戶名或密碼錯誤' myReponse = render_to_response( "login.html" , msg) return myReponse |
其中我們使用了UserLogin類,并用此類中的方法完成了用戶是否已經登錄的驗證。
UserClass.py:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# coding:utf-8 class UserLogin: userName = '' pwd = '' # 構造方法 def __init__( self ,username,pwd): self .userName = username self .pwd = pwd # 登錄驗證方法 def isLogin( self ): if self .userName = = 'jack' and self .pwd = = '123' : return True else : return False |
在views.py中使用之前必須要引入:
1
|
from UserClass import UserLogin |
表示從UserClass中導入UserLogin。
4.在login方法中,登錄成功就跳轉到了首頁,首頁顯示登錄用戶名
1
2
3
4
5
6
7
8
9
10
11
|
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < title >首頁</ title > </ head > < body > < h2 >這是首頁,當前登錄用戶是:{{ username }}</ h2 > < p >< a href = "##" rel = "external nofollow" >安裝退出</ a ></ p > </ body > </ html > |
1
2
3
4
5
6
|
def hi(request): msg = { 'username' : '游客' } if request.COOKIES.get( 'userlogin_username' ) ! = None : msg[ 'username' ] = request.COOKIES.get( 'userlogin_username' ) myReponse = render_to_response( "index.html" ,msg) return myReponse |
希望本文所述對大家基于Django框架的Python程序設計有所幫助。
原文鏈接:https://blog.csdn.net/github_26672553/article/details/52496937