Django操作session 的方法


Posted in Python onMarch 09, 2020

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详细流程解析

Django操作session 的方法

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 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
python模拟鼠标拖动操作的方法
Mar 11 Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 Python
Python微信库:itchat的用法详解
Aug 14 Python
python opencv之分水岭算法示例
Feb 24 Python
用python处理MS Word的实例讲解
May 08 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
详解Django的CSRF认证实现
Oct 09 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
浅析matlab中imadjust函数
Feb 27 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
Python装饰器用法与知识点小结
Mar 09 #Python
Django中的session用法详解
Mar 09 #Python
python实现引用其他路径包里面的模块
Mar 09 #Python
python+opencv边缘提取与各函数参数解析
Mar 09 #Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
Mar 09 #Python
Pycharm+Python工程,引用子模块的实现
Mar 09 #Python
python的sys.path模块路径添加方式
Mar 09 #Python
You might like
杏林同学录(三)
2006/10/09 PHP
一个MYSQL操作类
2006/11/16 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
python实现局域网内实时通信代码
2019/12/22 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
自荐信怎么写呢?
2013/12/09 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
宣传标语大全
2014/07/01 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
学习党章的体会
2014/11/07 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript