刚坐在车里就开始电闪雷鸣。听着隆隆的雷声,没有恐慌,到有几分振奋人心的舒心感、酣畅淋漓感。朝外望去,突然间,狂风夹杂着骤雨席卷而来,一泻千里。瞬间暴雨如注,打在地上,溅起朵朵浪花,在热浪的蒸腾下激起层层水雾。满大街是慌乱的人群,行人跑着、叫喊着,唧唧喳喳的赶着在房檐下躲雨。这时候伞是没有用的,挡不住狂风暴雨的袭击,无论是带了伞的,还是没带伞的,全都躲在了房檐下。
使用session保持用户登陆连接
在 view 中 login() 视图函数里增加如下语句
不允许重复登录语句
if request.session.get('is_login',None):
return HttpResponseRedirect(reverse('index'))
一旦用户名和密码输入正确,就往 session 字典内写入用户状态和数据
request.session['is_login'] = True request.session['user_id'] = db_user.id request.session['user_name'] = db_user.name
对于 logout() 方法进行编写。
def logout(request):
if not request.session.get('is_login', None):
# 如果本来就未登录,也就没有登出一说
return redirect("/index/")
request.session.flush()
# 或者使用下面的方法
# del request.session['is_login']
# del request.session['user_id']
# del request.session['user_name']
return redirect("/index/")
使用 flush() 方法清除数据比较安全,但是不能保存 session 中的私货
对于 HTML 文件进行改写
{% if request.session.is_login %}
<li><a rel="nofollow noopener noreferrer" href="#" rel="external nofollow" >当前在线:{{ request.session.user_name }}</a></li>
<li><a rel="nofollow noopener noreferrer" href="/logout/" rel="external nofollow" >登出</a></li>
{% else %}
<li><a rel="nofollow noopener noreferrer" href="/login/" rel="external nofollow" >登录</a></li>
<li><a rel="nofollow noopener noreferrer" href="/register/" rel="external nofollow" >注册</a></li>
{% endif %}
以上这篇Django中使用session保持用户登陆连接的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。