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 相关文章推荐
web.py获取上传文件名的正确方法
Aug 26 Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
在Python的Django框架中实现Hacker News的一些功能
Apr 17 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
实例讲解Python爬取网页数据
Jul 08 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
Python Datetime模块和Calendar模块用法实例分析
Apr 15 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
如何教少儿学习Python编程
Jul 10 Python
python类共享变量操作
Sep 03 Python
python-地图可视化组件folium的操作
Dec 14 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
php生成WAP页面
2006/10/09 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
php输出形式实例整理
2020/05/05 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
XML文档面试题
2015/08/05 面试题
就业推荐自我鉴定
2013/10/06 职场文书
口腔医学技术应届生求职信
2013/11/09 职场文书
大学生求职推荐信
2013/11/27 职场文书
法学函授自我鉴定
2014/02/06 职场文书
开展读书活动总结
2014/06/30 职场文书
爱的承诺书
2015/01/20 职场文书
保研专家推荐信范文
2015/03/25 职场文书
大学生读书笔记大全
2015/07/01 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
公司董事任命书
2015/09/21 职场文书
安全生产培训心得体会
2016/01/18 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python