django学习 session保持登录,且登出

学一点记一点

刚刚进来的时候突然发现,博客园的主页在缩小的时候会发生一些挤压,有点意思

今天刚看了session,感觉之前太迷茫,把问题想得过于复杂了。

我这个是建立在有登录和注册的功能上的演示。

首先,我们要去setting里面确定session在不在

找到上述字段中含有session的就好了

然后,去登录的那个views里,找到登录成功跳转的上一个字段,加入如下代码

request.session['user'] = request.POST.get('user')

我这个是在session里添加一个user,然后值是由我从前端传来的账号信息。

同时也可以在注册里去添加,可以对应注册成功后直接登录。

登录成功后,右键页面,查看元素,然后找到存储里的cookie。如下

会发现多了一个sessionid,然后我写了一个message函数,能用于返回session里的user,这样不管你跳转到哪个页面只要网session里去取出这个值就好了。就像这样

 context['user'] = request.session.get('user')

当然,还可以设定判断是否登录,

 if 'user' not in  request.session:
        return render(request,'login/index.html')

我之前在session加了一个key是user,所以如果我找不到,那么就是没有登录啦,就会让他去登录页面。

登出就比较简单,只要清掉session就好了

def loginout(request):
    request.session.flush()
    return render(request,'login/index.html')

flush是指清掉所有存在session里的值,可以去cookie看看是不是消失了。

当然还可以设置session保存时间什么的

原文地址:https://www.cnblogs.com/afei123/p/11335918.html