Django Session 通用配置与5种存储引擎详解
本文详细介绍Django中Session的通用配置方法及五种支持的存储引擎。涵盖数据库、缓存、文件、缓存+数据库及加密Cookie五种方式的具体Settings配置代码,包括SESSION_ENGINE、SESSION_COOKIE_NAME等关键参数的默认值与自定义设置,帮助开发者根据项目需求选择合适的Session存储方案。
Django Session 通用配置与5种存储引擎详解
近期回顾发现对Session机制的理解有所生疏,默认配置项容易混淆,因此整理了一份通用设置清单,方便日后查阅与参考。
Session默认参数配置
首先介绍在配置文件中设置默认操作的方法,这属于通用的基础配置:
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功能,内部提供了五种类型的存储引擎供开发者选择:
1. 数据库(默认选项) 2. 缓存 3. 文件 4. 缓存+数据库 5. 加密Cookie
若选择缓存类型作为存储引擎,需在setting.py中进行如下配置:
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
SESSION_CACHE_ALIAS = 'default'
# 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
若选择文件类型作为存储引擎,配置方式如下:
SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 引擎
SESSION_FILE_PATH = None
# 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()
若选择缓存+数据库混合模式,配置示例如下:
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
#一般用于构建高并发应用的时候才选用,但是其使用效率未必比数据库类型高
若选择加密Cookie模式,配置示例如下:
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
上述所有配置均需在settings文件中完成。默认情况下,若未指定其他引擎,Django将使用其内置的SQLite3数据库存储Session数据,除非开发者手动指定其他数据库后端。
以上即为Django中Session的通用设置方法及五种存储引擎的详细介绍,希望能为读者提供有价值的参考,欢迎支持本站获取更多技术内容。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









