修改session的存储机制:

默认情况下,session数据时存储到数据库中,当然也可以将session数据存储到其他地方。可以通过设置SESSION_ENGINE来更改session的存储位置,这个可配置为以下几种方案:

1.django.contrib.session.backends.db:使用数据库,默认就是这种方案。
2.django.contrib.sessions.backends.file:使用文件来存储session。
3.django.contribsessions.backends.cache:使用缓存来存储session。想要将数据存储到缓存中,前提是你必须要在settings.py中已经配置好了CACHES,并且是需要使用Memcached,而不能使用纯内存作为缓存。
4.django.contribsessions.backends.cached_db:在存储数据的时候,会将数据先存到缓存中,再存到数据库中,这样就可以保证万一缓存系统出现问题,session数据也不会丢失,在获取数据的时候,会向从缓存中获取,如果缓存中没有,那么就会从数据库中获取。需要注意的是,这种情况下要配置memcached缓存和SESSION_ENGINE,示例代码如下:
# memcached settings
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'127.0.0.1:11211',
'192.168.1.133:11211',
],
'KEY_FUNCTION': lambda key, key_prefix, version: 'Django:' + key,
}
} # Location of Session_id, Session_data
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
这种情况下在cmd窗口通过telnet操作memcached,查看是否存储到了缓存中,使用命令:stats items, 返回的结果:
STAT items:1:number 1
之后,查看缓存中items:1的具体信息,执行命令:
stats cachedump 1 0
返回的结果为:
ITEM age [2 b; 1581842070 s]
END
获得age的具体信息,执行命令:get age。
get age
VALUE age 16 2
20
END
5.django.contrib.sessions.backends.signed_cookies:将session信息加密后存储到浏览器的cookie中,这种方式要注意安全,建议设置SESSION_COOKIE_HTTPONLY=True,那么在浏览器中不能通过js来操作session数据,并且还需要对settings.py中的SECRET_KEY进行解密,因为一旦别人知道这个SECRET_KEY,那么久可以进行解密,另外还有即使在cookie中,存储的数据不能超过4kb。
# 将session信息加密后存储到浏览器的cookie中
# SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
在这种情况下,只会将session信息加密后存储到浏览器中cookie中,而不会存储到数据库中。

138.更改session的存储机制的更多相关文章

  1. 修改session的存储机制

    <?php  //修改session的存储机制 //最起码应该有一个 读方法, 和一个 写方法. //1, 我们先去建立 读方法 和 写方法. //2, 告知session系统,使用我们的方法完 ...

  2. php重写session的存储机制

    重写session的存储机制 Session数据区 默认以 文件的形式存储与服务器操作系统临时目录中! 当 session数据区过多时,文件形式的存储,操作速度变慢.磁盘的读写(IO,input/ou ...

  3. 自定义session的存储机制

    <?php class MSession implements SessionHandlerInterface{ // reids 对象 protected $handler = null; / ...

  4. Session 知识点再整理(二) 自定义 Session 存储机制

    对于访问量大的网站,用默认的 Session 存储方式(以文件存储)不适合,因为文件的 I/O 开销会非常大,另外 Session 机制本身使 Session 不能跨机访问,在 Web 集群中无法达到 ...

  5. php中session的生成机制、回收机制和存储机制探究

    1.php中session的生成机制 我们先来分析一下PHP中是怎么生成一个session的.设计出session的目的是保持每一个用户的各种状态来弥补HTTP协议的不足(无状态).我们现在有一个疑问 ...

  6. 多台web如何共享session进行存储(转载)

    session的存储了解以前是怎么做的,搞清楚了来龙去脉,才会明白进行共享背后的思想和出发点.我喜欢按照这样的方式来问(或者去搞清楚):为什么要session要进行共享,不共享会什么问题呢? php中 ...

  7. HTTP Session、Cookie机制详解

    一.什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息. ...

  8. [转]mvc3 使用session来存储类来存储用户登陆信息

    mvc3 使用session来存储类来存储用户登陆信息 2013-08-26 09:48:56|  分类: NET开发 |举报 |字号 订阅   项目之前的登陆机制是这样的:用户登陆后初始化一个类,类 ...

  9. php中session的运行机制

    在PHP中session默认是以文件的形式存储于服务器的 而客户端和服务端则是通过session_id来完成握手的,默认情况下PHP会将session_id存储于cookie中,用户每次请求时该ses ...

随机推荐

  1. Digital Twin 数字孪生

    GE的一个NB视频:http://v.youku.com/v_show/id_XMjk0NTMzODIyNA==.html http://www.gongkong.com/news/201701/35 ...

  2. Zookeeper 介绍 原理

    简介: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务.       它Google的Chubby一个开源的实现,在分布式协调技术方面做得比较好的就是Google的Chubby还有 ...

  3. ts的特殊数据类型

    四. Ts数据类型 tuple(元组类型):可以给数组指定位置存指定类型数据 例:let arr:[number, string] = [123, ‘123’]; enum(枚举):将数字转化为标识符 ...

  4. FakeLogonScreen抓取Windows凭证

    FakeLogonScreen抓取Windows凭证 实践中使用的配置 攻击者: 操作系统: Kali Linux 2020.1 IP: 192.168.1.13 目标: 作业系统: Windows ...

  5. OSCP收集

    推荐书籍: 渗透测试:黑客动手入门(+强烈推荐初学者) 黑客:剥削的艺术,第二版 Rtfm:Red Team Field手册 Web应用程序黑客手册:查找和利用安全漏洞 黑客手册:实用指南渗透测试 基 ...

  6. docker实战部署Javaweb项目

    一.部署环境说明 docker服务版本:version 18.09.0nginx服务版本:version: nginx/1.15.10redis服务版本:version: redis/5.0.3tom ...

  7. ASP.NET MVC通用权限管理系统(响应布局)源码更新介绍

    一.asp.net mvc 通用权限管理系统(响应布局)源码主要以下特点: AngelRM(Asp.net MVC)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash ...

  8. Java数据结构--单链表

    #java学习经验总结------单链表的建立与结点的增删 在该链表结点有data数据,并且还有cpu,分给cpu随机的时间片,根据时间片大小进行结点data的排序 链表结点的建立 class Lin ...

  9. UI自动化技术在高德的实践

    一.背景汽车导航作为ToB业务,需要满足不同汽车厂商在功能和风格上体现各自特色的需求.针对这种情况,传统的UI开发方式,基本上是一对一的特别定制.但是这种方式动辄就要500~600人日的工作量投入,成 ...

  10. jni和线程

    JNI官方规范中文版——在程序中集成JVM需要注意的JNI特征 翻译 我们已经讨论了JNI在写本地代码和向本地应用程序中集成JVM时的特征.本章接下来的部分分介绍其它的JNI特征. 8.1 JNI和线 ...