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


Posted in Python onAugust 06, 2019

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

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

Python 相关文章推荐
Python切片知识解析
Mar 06 Python
python中的错误处理
Apr 10 Python
浅谈Python的垃圾回收机制
Dec 17 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
Python datetime和unix时间戳之间相互转换的讲解
Apr 01 Python
python网络爬虫 Scrapy中selenium用法详解
Sep 28 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
Python操作redis和mongoDB的方法
Dec 19 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
Python中else的三种使用场景
Jun 16 Python
用PYTHON去计算88键钢琴的琴键频率和音高
Apr 10 Python
Python中的self用法详解
Aug 06 #Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 #Python
Django 响应数据response的返回源码详解
Aug 06 #Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 #Python
Django中提供的6种缓存方式详解
Aug 05 #Python
python修改字典键(key)的方法
Aug 05 #Python
python中使用while循环的实例
Aug 05 #Python
You might like
php学习之数据类型之间的转换介绍
2011/06/09 PHP
基于initPHP的框架介绍
2013/04/18 PHP
PHP的自定义模板引擎
2017/03/24 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python ZipFile模块详解
2013/11/01 Python
python使用opencv读取图片的实例
2017/08/17 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python抖音表白程序源代码
2019/04/07 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
帮一个朋友写的求职信
2014/08/09 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
档案管理员岗位职责
2015/02/12 职场文书
深入理解python多线程编程
2021/04/18 Python
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python