Session

  • 对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息
  • 在服务器端进行状态保持的方案就是Session
  • Session依赖于Cookie

启用Session

  • Django项目默认启用Session

    • 禁用Session:将Session中间件注释即可

Session存储方式

  • Session数据,可以存储在数据库、缓存、Redis等
    • 设置SESSION_ENGINE项指定Session存储方式
  • 存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式

      SESSION_ENGINE = 'django.contrib.sessions.backends.db'
    
  • 存储在缓存中:存储在本机内存中,如果丢失则不能找回,比数据库的方式读写更快

      SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
    
  • 混合存储:优先从本机内存中存取,如果没有则从数据库中存取

      SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
    
  • 如果存储在数据库中,需要在项INSTALLED_APPS中安装Session应用

默认存储Session的数据库

  • 迁移后会在数据库中创建出存储Session的表

  • 表结构

    • 由表结构可知,操作Session包括三个数据:键,值,过期时间