外观
配置会话引擎
默认情况下,Django会将会话数据保存在数据库里。可选的其他保存位置如下:
- 基于数据库的会话
确保在INSTALLED_APPS设置中django.contrib.sessions存在,然后运行manage.py migrate命令,在数据库中创建sessions表。
- 基于缓存的会话
为了提高性能,通常会将Session保存在缓存中,但是首先要配置缓存。
若定义了多个缓存,Django会使用默认的缓存。若使用其他缓存需要将SESSION_CACHE_ALIAS参数设置为对应的缓存名字。
配置好缓存后,可以选择以下两种保存缓存的方法。
- 将SESSION_ENGINE设置为django.contrib.sessions.backends.cache,简单的对会话进行保存。但是这种缓存在满了之后将清除部分数据,且服务器重启后数据会丢失。
- 为了数据安全,通常将SESSION_ENGINE设置为django.contrib.sessions.cached_db,这样每次缓存时会同时存在数据库里,当缓存不可用时会在数据库中读取。
两种方法都很迅速,但第一种缓存更快。
- 基于文件的会话
将SESSION_ENGINE设为django.contrib.sessions.backends.file,同时必须正确配置SESSION_CACHE_PATH,确保文件存储目录及Web服务器有读取该目录的权限。
- 基于Cookie的会话
将SESSION_ENGINE设为django.contrib.sessions.backends.signed_cookies,Django将使用加密签名密钥和安全密钥设置保存会话的Cookie。
除此之外可以将SESSION_COOKIE_HTTPONLY设为True,以阻止JavaScript对会话数据的访问,提高安全性。