在前面我们讲过的session和cookie都是存在于数据库中的,我们可以修改它,在此之前我们需要知道,如果settings.py配置文件中存在:
SESSION_ENGINE='django.contrib.sessions.backends.db' #引擎
这就表示把session存在数据库中,想要修改只需要更换引擎。Django中默认支持Session,其内部提供了5种类型的Session供开发者使用:
- 数据库(默认)
- 缓存
- 文件
- 缓存+数据库
- 加密cookie
缓存Session
配置 settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎
SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置
你只需要在settings.py文件中配置上面的代码,不需要修改其他的地方,操作还是同数据库中的一样。如果使用Memcache缓存的话,需要添加额外进行配置:
CACHES = {
'default': { # SESSION_CACHE_ALIAS = 'default'
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'172.19.26.240:11211',
'172.19.26.242:11211',
]
}
'db1': { # SESSION_CACHE_ALIAS = 'db1'
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'172.19.26.240:11211',
'172.19.26.242:11211',
]
}
}
在django内部不支持redis,只支持Memcache。
文件Session
其中SESSION_FILE_PATH表示文件夹路径
配置 settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 引擎
SESSION_FILE_PATH = None # 缓存文件路径,如果为None,则使用tempfile模块获取一个临时地址tempfile.gettempdir()
#SESSION_FILE_PATH=os.path.join(BASE_DIR,'cache') #会在当前路径下创建一个cache目录,保存session
#默认情况,django会自动帮你找个文件目录保存
缓存+数据库Session
先去缓存中寻找,没有就去数据库中寻找,这也是网站的常用方法。
数据库用于做持久化,缓存用于提高效率
配置 settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' # 引擎
加密cookie Session
加密cookie其实是把两者都放到cookie中,加密一下,session是没有使用。
配置 settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' # 引擎
所有的对于session的基本操作都是一样的,只是配置的引擎不一样,有关session的基本操作,可参考:Django框架中Cookie和Session结合使用。
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!