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备份文件以及mysql数据库的脚本代码
Jun 10 Python
python使用cPickle模块序列化实例
Sep 25 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
深入理解Django的中间件middleware
Mar 14 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
python3下pygame如何实现显示中文
Jan 11 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
Python爬取12306车次信息代码详解
Aug 12 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
Python激活Anaconda环境变量的详细步骤
Jun 08 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使用array_fill定义多维数组的方法
2015/03/18 PHP
AJAX的使用方法详解
2017/04/29 PHP
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
简单的js计算器实现
2016/10/26 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
javascript 跨域问题以及解决办法
2017/07/17 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
JS实现多物体运动的方法详解
2018/01/23 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
python如何读写json数据
2018/03/21 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
详解python做UI界面的方法
2019/02/27 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
python温度转换华氏温度实现代码
2020/12/06 Python
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
出国导师推荐信
2014/01/16 职场文书
开工典礼策划方案
2014/05/23 职场文书
我的中国梦口号
2014/06/16 职场文书
典型事迹材料范文
2014/12/29 职场文书
物业公司管理制度
2015/08/05 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技