Cookie:

1、保存在用户浏览器中(键值对)。

2、不应该存放敏感信息,如用户账户密码之类的。

Session:

2、保存在服务器的数据库和内存中(也给用户浏览器的Cookie中储存了对应的键值对)

3、给用户Cookie中储存一个随机字符串。

一,基本的操作流程。

1、生成随机字符串

2、写到用户浏览器cookie

3、保存在session中

4、在随机字符串对应的字典中设置相关内容(如果不设置相关内容,就等于没有,也没有起到任何作用),如下:

用户cookie中保存的键值对,也就是服务器给用户的随机字符串

sqlite数据库中保存着用户的随机字符串,加密的用户名(设置什么加密什么),生成时间。

Cookie和Session的区别:

Cookie只保存在客户端的浏览器中,

Session需要依赖于Cookie。

Session保存在服务器的数据库或者内存或者文件,都行。

更多操作:

获取:

request.session['k1']   #没有就会报错

request.session.get('k1',None)  #没有也不会报错(建议使用这个)

设置:

request.session['k1'] = user #设置session

request.session.setdefault('k1',user) #如果服务器已经存在,就不在创建。

删除:

del request.session['k1'] #删除某一条

request.session.clear() #清空(注销的时候使用)

request.session.delete("session_key") #删除这个用户的所有信息。

#所有 键、值、键值对(可以通过循环对所有的键值对进行操作,例如:for k,v in request.session.items():),然后拿到数据,用上面讲的方法进行操作。

request.session.keys()

request.session.values()

request.session.items()

request.session.iterkeys()

request.session.itervalues()

request.session.iteritems()

#用户session的随机字符串。

request.session.session_key

#将所有Session失效日期小于当前日期的数据删除

request.session.clear_expired(60*60)          #例如一小时

#检查用户Session的随机字符串在数据库中是否存在

request.session.exists("session_key")

#删除当前用户的所有Session数据

request.session.delete("session_key")

Session:

默认的超时时间是两周

- 配置文件中设置默认操作(通用配置):(直接放到settings文件的最下面即可)

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,默认修改之后才保存(默认),每次用户操作后起重新计算超时时间,false就表示从用户第一次操作器计算。

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

数据库(默认)

缓存

文件

缓存+数据库

加密cookie

1、数据库Session

Django默认支持Session,并且默认是将Session数据存储在数据库中,即:django_session 表中。

a. 配置 settings.py

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

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,默认修改之后才保存(默认)

2、缓存Session

a. 配置 settings.py

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

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

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,默认修改之

3、文件Session

a. 配置 settings.py

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

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

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,默认修改之后才保存

4、缓存+数据库Session

数据库用于做持久化,缓存用于提高效率

a. 配置 settings.py

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

5、加密cookie Session

a. 配置 settings.py

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

注意,以上的这几种储存方法虽有不同,但是所有的使用方法都是一样的。

python 使用session_Python(Django之Session详解及使用)相关推荐

  1. python镜像下载包_python包详解

    干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...

  2. Django REST 框架详解 07 | 三大认证与权限六表

    文章目录 一.三大认证 1. 认证组件:校验用户 2. 权限组件:校验用户权限 3. 频率组件:限制视图接口被访问次数 4. 分析源码 二.权限六表 1. RBAC 认证 2. 权限三表 3. 权限五 ...

  3. python3占位符详解_占位符最新:Python 占位符的使用方法详解_爱安网 LoveAn.com

    关于"占位符"的最新内容 聚合阅读 这篇文章主要介绍了Python 占位符的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以 ...

  4. python波形图librosa_对python中Librosa的mfcc步骤详解

    对python中Librosa的mfcc步骤详解 发布时间:2020-10-18 23:55:35 来源:脚本之家 阅读:71 作者:qq_39239990 1.对语音数据归一化 如16000hz的数 ...

  5. Django入门基础详解

    本次使用django版本2.1.2 安装django 安装最新版本 pip install django 安装指定版本 pip install django==1.10.1 查看本机django版本 ...

  6. 21年最新Python面试题及答案汇总详解(上)

    错过三月找工作的机会,还要错过四月的好时期吗?Python面试你做准备了吗?下面小编整理了一套2021年最新Python常见面试题目,及Python面试题目答案汇总.希望能够帮助到大家. 21年最新P ...

  7. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解

    问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...

  8. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  9. python画图三维-对python mayavi三维绘图的实现详解

    网上下载mayavi的官方帮助文档,里面有很多例子,下面的记录都是查看手册后得到的. python的mayavi.mlab库中的绘图函数有很多候选参数,但下文记录并没有过多讨论,本人也是需要用到才查看 ...

最新文章

  1. C++ KMP算法之next数组的生成
  2. TypeScript里的类型合并操作符
  3. Exchange 2013学习(六),脱机通讯簿
  4. 账户与使用计算机的人无关,本地用户和组
  5. MOSS/Sharepoint 如何更改一台已经安装了SharePoint的服务器名称
  6. 页面每次添加都显示最后一次访问记录spring scope=prototype 学习笔记
  7. python安装robotframework报错_Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
  8. 如何设置centos7的ip地址配置信息,让我的主机和它互Ping,以及远程登陆
  9. 超级计算机预报威海雨雪,威海历史天气预报查询_2018年12月份威海天气记录_威海2018年12月份天气情况_天气后报...
  10. 奇怪,为什么在主页上面只列出最近的随笔,而文章呢?
  11. Refactoring: Encapsulate Collection
  12. 产品功能树图_新版PFMEA培训之第三步功能分析,理清结构,梳理思路
  13. Visual Studio Coded的安装以及中文化
  14. 杭电计算机学硕还是专硕就业好,19计算机考研选学硕还是专硕?
  15. 获得浏览器设置的语言
  16. 封装60秒倒计时vue组件
  17. 9个offer,12家公司,35场面试,从微软到谷歌
  18. +initialize方法的调用时机
  19. idea自定义banner
  20. Python数据处理课程设计-房屋价格预测-代码

热门文章

  1. 【避坑指南】通过rtsp url网址获取海康视频流
  2. python数据比对怎么做_同事给你迷之Excel数据,4个数据处理案例教你Python数据对比更新...
  3. 我的世界服务器回到死亡位置,我的世界指令大全回到死亡地点 | 手游网游页游攻略大全...
  4. CSS 文本效果 text-overflow,word-wrap,word-break,writing-mode,text-align-last,text-justify
  5. js json遍历到html,js遍历json的key和value的实例_稚终_前端开发者
  6. Android VectorDrawable 矢量图+属性动画 使用总结
  7. 【字符串算法】刷题总结
  8. XC6217,LED驱动IC,DC-DC升压IC,LDO稳压IC,电压检测IC,复位IC, MOS管
  9. D. Game on Axis codeforces1787D
  10. 知客CRM,户外广告公司最适用的广告管理软件