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