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 命令行也可以自动补全
Nov 30 Python
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
Python 2.7中文显示与处理方法
Jul 16 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
Django实现学生管理系统
Feb 26 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
python读文件的步骤
Oct 08 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
快速了解Python开发环境Spyder
Jun 29 Python
python标准库ElementTree处理xml
May 20 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
nodeJS微信分享
2017/12/20 NodeJs
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
Python 中的 else详解
2016/04/23 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
解决Oracle数据库用户密码过期
2022/05/11 Oracle
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle