本文实例讲述了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