Django-session

标题

Session
对于敏感、重要的信息,建议要储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息。

在服务器端进行状态保持的方案就是Session。
区别于cookie,ssession是储存在服务器端。
在这里插入图片描述
储存在django_session数据库中

def login(request):
    '''显示登录页面'''
    if request.session.has_key('islogin'):
        # 用户已登录,跳转到首页
        return redirect('/index')
    else:
        # 用户未登录
        # 获取登录状态
        if 'username' in request.COOKIES:
            username = request.COOKIES['username']
        else:
            username = ''
        return render(request,'booktest/login.html' ,{
            'username':username
        })

这是利用session登录的两个函数

def login_check(request):
    '''登录校验'''
    # request.post 保存post方式提交的参数
    # request.get 保存get方式提交的参数
    # 1.获取提交的用户名和密码
    username = request.POST.get('username')
    password = request.POST.get('password')
    remember = request.POST.get('remember')

    # 2.进行登录校验
    # 实际开发:根据用户名和密码查找数据库
    # smart 123
    if username == 'smart' and password == '123':
        # 用户名正确,跳转到首页
        resource = redirect('/index')
        # 判断是否需要记住用户名
        if remember == 'on':
            resource.set_cookie('username',username,
max_age=7*24*3600)# 过期时间为一周

        # 记住用户登录状态
        # 只有session中有islogin,就认为用户已登录
        request.session['islogin'] = True

        return resource

    else:
        # 用户名错误,跳转到登录页面
        return redirect('/login')

如果该用户已经登录过一次再次登录就之间跳转到index页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值