网络编程
位置:首页>> 网络编程>> Python编程>> Django中使用session保持用户登陆连接的例子

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

作者:ins_s  发布时间:2021-08-29 03:27:30 

标签:Django,session,用户登陆

使用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 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 %}

来源:https://blog.csdn.net/ins_s/article/details/79419455

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com