1.先改造一下公共的LoadClass()函数,把request对象传进来
# coding:utf-8
# 定义一个函数专门用来导入类
def LoadClass(pgkPath,className,request):
try:
pgk_main = __import__(pgkPath)
split_pgk = pgkPath.split(".")
for p in split_pgk[1:]:
pgk_main = getattr(pgk_main,p) # 加载到文件
pgk_main = getattr(pgk_main,className) #加载到类
ret_class = pgk_main(request)
return ret_class
except Exception,e:
print e
return None
2.构建首页
# coding:utf-8
from django.shortcuts import render,render_to_response
class index():
# 定义属性
request = None
def __init__(self, request):
self.request = request
def run(self):
msg = {'username': 'guest'}
if self.request.COOKIES.get('userlogin_username') != None:
msg['username'] = self.request.COOKIES.get('userlogin_username')
myReponse = render_to_response("index.html", msg)
return myReponse
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h2>这是首页,当前登录用户是:{{ username }}</h2>
{% ifequal username "guest" %}
<p><a href="/user/UserLogin">登录</a></p>
{% else %}
<p><a href="/user/logout">安全退出</a></p>
{% endifequal %}
</body>
</html>
3.登录页
# coding:utf-8
from django.shortcuts import render,render_to_response
from django.http import HttpResponse
class UserLogin():
# 定义属性
request = None
def __init__(self,request):
self.request = request
def run(self):
msg = {'result': ''}
if self.request.method == 'POST':
getUserName = self.request.POST.get('username')
getPwd = self.request.POST.get('pwd')
if self.login(getUserName,getPwd):
myReponse = HttpResponse("<script>self.location='/index/index'</script>")
myReponse.set_cookie('userlogin_username', getUserName, 3600)
return myReponse
else:
msg['result'] = '用户名或密码错误'
myReponse = render_to_response("login.html", msg)
return myReponse
def login(self,username,pwd):
if username == 'jack' and pwd == '123':
return True
return False
4.登出logoutController.py
# coding:utf-8
from django.shortcuts import render,render_to_response
from django.http import HttpResponse
class logout():
# 定义属性
request = None
def __init__(self, request):
self.request = request
def run(self):
msg = {'username': 'guest'}
r = HttpResponse()
r.delete_cookie('userlogin_username')
r.write("<script>self.location='/index/index'</script>")
return r