利用新架构整合我们的首页和登录页

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值