python关闭浏览器删除session_Django操作session 的方法

session是存放在服务端的,在django中使用session必须要先在数据库中创建django_session表,session相关信息都要依赖此表

获取session

request.session['status']

request.session.get('status')#一般用get,无此键返回None不报错

设置session

#在使用session之前必须在数据库创建相关的表(django_session)

#调用request.session首先会接收请求头部的cookie是否有sessionid,进行表查询对比

#如果有重新生成一个sessionid进行覆盖更新记录,并将随机生成的sessionid添加到cookie返回前端

# 没有则新建存进表中的session_key,同时将字典信息加密自动存进表中的session_data字段

request.session['status']=True  # 存在自动覆盖

request.session.setdefault('k1',123) # 存在则不设置

删除session

request.session.flush()#删除服务端的session,删除当前的会话数据并删除会话的Cookie。

request.session.clear_expired()# 将所有Session失效日期小于当前日期的数据删除,将过期的删除

del request.session['k1']#django-session表里面同步删除

request.session.delete()# 删除当前会话的所有Session数据

更多session操作

# 所有 键、值、键值对

request.session.keys()

request.session.values()

request.session.items()

#获取sessionid的值

session_key = request.session.session_key

#检查会话session的key在数据库中是否存在

request.session.exists("session_key") #session_key就是那个sessionid的值

# 设置会话Session和Cookie的超时时间

request.session.set_expiry(value)

* 如果value是个整数,session会在些秒数后失效。

* 如果value是个datatime或timedelta,session就会在这个时间后失效。

* 如果value是0,用户关闭浏览器session就会失效。

* 如果value是None,session会依赖全局session失效策略。

Session详细流程解析

1451ecc8f8c57132332ce055c82e3455.png

Django中的Session配置

Django中默认支持Session,其内部提供了5种类型的Session供开发者使用。

1. 数据库Session

SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默认)

2. 缓存Session

SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎

SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置

3. 文件Session

SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 引擎

SESSION_FILE_PATH = None # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()

4. 缓存+数据库

SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' # 引擎

5. 加密Cookie Session

SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' # 引擎

其他公用设置项:

SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)

SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径(默认)

SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)

SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认)

SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认)

SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默认)

SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期(默认)

SESSION_SAVE_EVERY_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存(默认)

总结

到此这篇关于Django操作session 的方法的文章就介绍到这了,更多相关django操作session 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python网页保存为图片_使用Python保存网页上的图片或者保存页面为截图

Python保存网页图片这个是个比较简单的例子,网页中的图片地址都是使用http://。。。。.jpg这种方式直接定义的。使用前,可以先建立好一个文件夹用于保存图片,本例子中使用的文件夹是 d:\\pythonPath这个文件夹代码如下:# -*- codi…

ioc框架 java_从零开始实现一个简易的Java MVC框架(三)--实现IOC

Spring中的IOCIoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想。而DI(Dependency Injection),即依赖注入就是Ioc的一种实现方式。关于Ioc和DI的具体定义和优缺点…

b树索引 java_B树索引最通俗易懂的介绍

先来一段有莫的对话:前几天下班回到家后正在处理一个白天没解决的bug,厕所突然传来对象的声音:对象:xx,你有《时间简史》吗?我:我去!妹子,你这啥癖好啊,我有时…

jython mysql_Jython

gomysql###介绍gomysql是基于go-sql-driver基础上开发的orm,这是一个轻量级的库。它会使数据库的增删改查变得非常容易。当然也是测试开发版,会一直优化和更新!请时刻关注我们###安装go get github.com/go-sql-driver/mysqlgo get github.com…

java人种_Java面向对象练习题继承之人种

//People类package 继承;public class People {private String name;private double height;private double weight;public String getName() {return name;}public void setName(String name) {this.name name;}public double getHeight() {return height;}public void setHe…

java高校职工工资管理论文_毕业设计论文java大学工资管理系统

毕业设计论文java大学工资管理系统 本 科 生 毕 业 论 文(设 计)题 目:大学工资管理系统 学 号: _________姓 名: ____ ___年 级: ___________学 院: ____ ___系 别: ___ ____专 业: ___ __完成…

mysql 冷热表_Redis+MySQL冷热数据交换

场景:某网站需要对其项目做一个投票系统,投票项目上线后一小时之内预计有100万用户进行投票,希望用户投票完就能看到实时的投票情况这个场景可以使用redismysql冷热数据交换来解决。何为冷热数据交换?冷数据:之前使用的…

关于包装java_[java初探09]__关于java的包装类

前言在Java语言的学习过程中,我们逐渐的理解了Java面向对象的思想,与类和对象的应用.但是在基本数据类型的使用上,我们无法将其定义为一个对象,通过使用对象的方法来使用它们,但是Java语言的思想又是面向对象的.那么在Java语言中,是否能够解决这个问题,使基本数据类型能够以对象…

能跑java的服务器_一台java服务器可以跑多少个线程?

一台java服务器能跑多少个线程?这个问题来自一次线上报警如下图,超过了我们的配置阈值。京东自研UMP监控分析打出jstack文件,通过IBM Thread and Monitor Dump Analyzer for Java工具查看如下:IBM Thread and Monitor Dump Analyz…

php取json子对象属性,php中输出json对象的值(实现方法)

实例如下所示:$json {"report":{"date":"2012-04-10","content":"abcdefght"}};$arr (array) json_decode($json,true);echo 当前日期是:. $arr[report][date];echo "";echo ;print_r($a…

php mysql 表关联,mysql的多表关联_MySQL

bitsCN.commysql的多表关联数据库中经常要用到多个表的关联。mysql的关联主要包括inner join,left join,right join三种,下面分别加以介绍,并举例说明。顾名思义,inner join集合了两个表的信息,只有都包含的…

ulink php,【转载】15款USB数字界面横向评测(对比顶级CD转盘)!多看点!

还有一则有趣的回帖,一位纽约的烧友认为作者没有尝试何庆华最新的数字界面非常可惜,他认为何先生自主开发的DI-V3电源套件非常之牛,甚至超过了AP1PP的水准(不少人认为这个组合有一点点过于分析,不如何先生的作品水润)。他认为以他…

php取掉字符串第一位支付,php怎样去掉字符串中的第一个字符

php去掉字符串中的第一个字符的方法:可以利用substr()函数来实现。substr()函数可以返回字符串的提取部分,如果失败则返回false,或者返回一个空字符串。substr() 函数返回字符串的提取部分,如果失败则返回 FALSE,或者返…

matlab求距离判别函数,求MATLAB的逐步判别程序 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

somomo91你不觉得信息量太少了么?摸不着头脑,zhouxiaobo是啊,信息量太少,LZ能详细描述一下你的问题吗或者直接给出你的数据和要求2012jxyl引用回帖:zhouxiaobo at 2013-06-06 09:44:49是啊,信息量太少,LZ能…

php验证码背景图是数字,ThinkPHP5.0.20验证码背景图片

tp5配置验证码相关问题一、验证码背景图片及tp中文验证码5.0.1及以上支持者在应用配置目录(application)下面 extra 子目录内配置captcha.php文件;配置参数如下:2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY,// 验证码字体大小(px)fontSize &g…

c mysql安装教程,Mysql安装教程_完成版(吐血式安装)

每次在不同操作系统中安装oracle和mysql这些常规数据库,步骤就那么点儿,但是遇见的错误却是千差万别。。记一次耗时两天的mysql数据库安装新得,有耐心,有毅力,憋生气。1.官网上下载免安装的版本(也就是下载下来直接解压…

oracle替代变量输出,【Oracle】替代变量

1.替代变量通常而言,替代变量的前缀是&或者&&区别:& 用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值&&用来创建一个持久变量,当用&&命令引用这个变量时&#xff…

oracle 常用故障,Oracle常见问题解决方案汇总

1、Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务数据库服务器崩了,而且尝试重启服务和重启机器都解决不了问题打开cmd窗口C:\Users\hxt>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期三 12月 5 11:39:54 2018Co…

特洛伊木马脚本linux,手动查杀特洛伊木马

首先也是最重要的,重新启动电脑到安全模式下,让所有文件都可见。然后进入到C:看看根目录是否存在不熟悉的文件,如果有,且日期为发现中毒现象当天,则删除之。接着到c:\windows,首先按照修改时间顺序排列图标…

linux添加虚拟硬盘命令,虚拟机linux扩盘命令操作

虚拟机linux扩展硬盘分原有硬盘上增加及新增硬盘,二者实现差不多。扩盘:fdisk -l查看是哪个盘扩盘了,如sdb重启后,将sdb刷新pv: pvresize /dev/sdb,pvdisplay查看是否增加了,再将逻辑卷分区VG(L…