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,其内部提供了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关闭浏览器删除session_Django操作session 的方法相关推荐

  1. python关闭浏览器、未过期的session_解决因为关闭浏览器造成session失效的假象

    session在服务端保存信息,是否关闭浏览器和session销毁无关,即:即使关闭浏览器,session还是存在的.但是为什么关闭浏览器后session好像就消失了. 1 session和cooki ...

  2. 搜狗浏览器中如何删除自带工具 搜狗浏览器删除自带工具的方法步骤

    搜狗浏览器中如何删除自带工具?最近有小伙伴问我想要删除搜狗浏览器中的自带工具不知道该怎么办,今天小编就给大家带来删除搜狗浏览器中自带工具的方法步骤,让我们一起来看看吧. 方法/步骤 1.我们需要先打开 ...

  3. python对浏览器的常用操作有哪些_Python Selenium中对象常用操作方法

    一.webdriver 提供了一系列的对象定位方法,常用的有以下几种:id定位:find_element_by_id() name定位:find_element_by_name() class定位:f ...

  4. python对浏览器的常用操作_python+selenium(4)--浏览器操作的基本方法

    关于自动化测试其实很多时候都是为了节省时间做一些大批量的复用性工作,在正式学习自动化脚本编写之前,这里引用陈建忠老师的博客内容,希望大家能了解一下关于什么是自动化的知识,在日后做自动化测试的过程中会根 ...

  5. python对浏览器的常用操作_Selenium元素的常用操作方法分析

    本文实例讲述了Selenium元素的常用操作方法.分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样 ...

  6. python 离群值_python:删除离群值操作(每一行为一类数据)

    删除有多行字符串的json文件中的离群值 def processhold(eachsubject,directory,newfile): filename = 'cmudatacol/hold/sub ...

  7. python引入redis_redis 删除大key集合的方法

    redis大key,这里指的是大的集合数据类型,如(set/hash/list/sorted set),一个key包含很多元素.由于redis是单线程,在删除大key(千万级别的set集合)的时候,或 ...

  8. Python list列表删除元素(4种方法)

    文章目录 Python list列表 del:根据索引值删除元素 pop():根据索引值删除元素 remove():根据元素值进行删除 clear():删除列表所有元素 Python list列表 在 ...

  9. 4.4 Python list列表删除元素(4种方法

    在 Python 列表中删除元素主要分为以下 3 种场景: 根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者 pop() 方法: 根据元素本身的值进行删除,可使用列表(list类型)提 ...

最新文章

  1. 比特率 波特率 数据传输速率 区别(转)
  2. Visual Studio 正则表达式替换
  3. UA MATH563 概率论的数学基础 鞅论初步6 鞅的性质 鞅差序列
  4. Simulating fire sales in a system of banks and asset managers(模拟银行和资产管理系统的折价销售)
  5. 数据库的硬迁移和mysql 5.5.38源码安装
  6. android p wifi一直在扫描_在Android上的每次WiFi扫描之间我应该使用什么时间间隔?...
  7. vue.js更改颜色_如何使用Vue.js实现简单的标题更改应用程序
  8. 输入任意两个两位的自然数,输出它们完整的乘法竖式。
  9. php7 测试数据库_达梦数据库PHP连接测试
  10. 爱情七十一课,低调恋爱
  11. 刷爆了!国企33岁程序员年入40w,直言:想降薪进阿里钻研技术
  12. mfc之解决vs2010调试监视器(MSVSMON.EXE)未能启动的问题
  13. 一.Nginx的特性和一些知识点
  14. 使用pienv安装python虚拟环境(学习记录)
  15. atitit.团队建设--要不要招技术储备人才的问题
  16. 阿里CTO鲁肃:技术的想象力不应设限,未来所有应用的核心都离不开数据和智能...
  17. java wps haspassword,#在WPS表格里面设置了密码怎么取消#excel解除密码保护
  18. html合并边框线,css中border-collapse属性设置表格边框线的方法
  19. 淘宝 NPM 镜像 node删除node_modules WebStorm license server address
  20. MDCC2013会议笔记

热门文章

  1. php jq跳转页面跳转,使用jQuery做页面跳转
  2. 局域网查看计算机慢,局域网内的电脑访问共享文件夹速度很慢如何解决
  3. Pytorch(七) --加载数据集
  4. 深度学习之基于Tensorflow2.0实现AlexNet网络
  5. [蓝桥杯][基础练习VIP]完美的代价(贪心)
  6. 并发请求数_nginx如何限制并发连接和请求数?
  7. HFSS报错A geometry selection is required for selection
  8. 课程设计完成之后要考虑的问题
  9. 计算机组成原理--主存储器
  10. JAVA_WEB--jsp语法