首页 > 编程 > Python > 正文

Django中使用session保持用户登陆连接的例子

2019-11-25 12:06:15
字体:
来源:转载
供稿:网友

使用session保持用户登陆连接

在 view 中 login() 视图函数里增加如下语句

不允许重复登录语句

if request.session.get('is_login',None):   return HttpResponseRedirect(reverse('index'))

一旦用户名和密码输入正确,就往 session 字典内写入用户状态和数据

request.session['is_login'] = Truerequest.session['user_id'] = db_user.idrequest.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 href="#" rel="external nofollow" >当前在线:{{ request.session.user_name }}</a></li>   <li><a href="/logout/" rel="external nofollow" >登出</a></li> {% else %}   <li><a href="/login/" rel="external nofollow" >登录</a></li>   <li><a href="/register/" rel="external nofollow" >注册</a></li>{% endif %}

以上这篇Django中使用session保持用户登陆连接的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表