- 如何使用sessions:
Django提供完全的匿名session支持,session框架使你可以基于站点访问者存储和取得任意数据。
它在服务端存储数据,提取发送和接收的cookies. Cookie包含一个session ID.
MIDDLEWARE_CLASSES:
'django.contrib.sessions.middleware.SessionMiddleware' # Sessions通过一个中间件实现
-- 配置Session引擎:
默认情况下,Django在数据库(database)中存储sessions(使用model: django.contrib.sessions.models.Session).
虽然这很方便,但有时存储在其他地方会更快,因此可以配置Django存储session到文件系统(filesystem)或缓存(Cache)
--- 使用基于后台数据库的session
INSTALLED_APPS:
'django.contrib.sessions'
运行manage.py migrate 创建库表
--- 使用基于后台缓存的session
仅当你的后台使用MemCached缓存时,才应该使用基于后台缓存的session.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
默认使用CACHES中的default缓存, 如果要使用其他缓存,设置SESSION_CACHE_ALIAS.
一旦配置好,你有两种选择来使用cache存储数据:
1. 只缓存,设置SESSION_ENGINE为"django.contrib.sessions.backends.cache"
2. 要持久化,且缓存,设置SESSION_ENGINE为"django.contrib.sessions.backends.cached_db" #同时要配置数据库
--- 使用基于文件的sessions
设置SESSION_ENGINE为"django.contrib.sessions.backends.file".
若设置SESSION_FILE_PATH,注意读写权限。
--- 使用基于cookie的sessions
设置SESSION_ENGINE为"django.contrib.sessions.backends.signed_cookies".
注:推荐保持SESSION_COOKIE_HTTPONLY的设置为True,以防止通过JavaScript访问存储的数据。
-- 在views中使用sessions
当SessionMiddleware被激活,每个HttpRequest对象(任何view函数的第一个参数)都将有一个session属性,一个类字典的对象。
Django提供完全的匿名session支持,session框架使你可以基于站点访问者存储和取得任意数据。
它在服务端存储数据,提取发送和接收的cookies. Cookie包含一个session ID.
MIDDLEWARE_CLASSES:
'django.contrib.sessions.middleware.SessionMiddleware' # Sessions通过一个中间件实现
-- 配置Session引擎:
默认情况下,Django在数据库(database)中存储sessions(使用model: django.contrib.sessions.models.Session).
虽然这很方便,但有时存储在其他地方会更快,因此可以配置Django存储session到文件系统(filesystem)或缓存(Cache)
--- 使用基于后台数据库的session
INSTALLED_APPS:
'django.contrib.sessions'
运行manage.py migrate 创建库表
--- 使用基于后台缓存的session
仅当你的后台使用MemCached缓存时,才应该使用基于后台缓存的session.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
默认使用CACHES中的default缓存, 如果要使用其他缓存,设置SESSION_CACHE_ALIAS.
一旦配置好,你有两种选择来使用cache存储数据:
1. 只缓存,设置SESSION_ENGINE为"django.contrib.sessions.backends.cache"
2. 要持久化,且缓存,设置SESSION_ENGINE为"django.contrib.sessions.backends.cached_db" #同时要配置数据库
--- 使用基于文件的sessions
设置SESSION_ENGINE为"django.contrib.sessions.backends.file".
若设置SESSION_FILE_PATH,注意读写权限。
--- 使用基于cookie的sessions
设置SESSION_ENGINE为"django.contrib.sessions.backends.signed_cookies".
注:推荐保持SESSION_COOKIE_HTTPONLY的设置为True,以防止通过JavaScript访问存储的数据。
-- 在views中使用sessions
当SessionMiddleware被激活,每个HttpRequest对象(任何view函数的第一个参数)都将有一个session属性,一个类字典的对象。
你可以在view的任意位置读写request.session, 可以重复编辑。