将用户信息存储在会话中,大大减少数据库查询。
项目描述
===================
django-session-user
===================
此应用程序是一个简单的中间件,可以添加到您的Django项目中
,从而将登录用户的信息从会话中存储和检索。
。
安装
------------
在AuthenticationMiddleware之后将sesionuser中间件行添加到您的MIDDLEWARE_CLASSES中
。
MIDDLEWARE_CLASSES = (
# ...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'sessionuser.middleware.SessionUserMiddleware',
# ...
)
为什么要这样做?
------------
您的服务器已经获取了用户会话的内容,该会话已包含用户的身份。为什么不将用户类数据的其余部分也存储在其中呢?这样您就不必为每个经过身份验证的Web请求向数据库发出请求。
。
此外,如果您正在使用基于cookie的会话后端(如
django-cookie-sessions,由我本人编写),您可以让其他系统,甚至非Django系统,读取cookie并了解更多有关用户的信息。
。
。
。
。
可定制的设置
---------------------
COOKIE_USER_REFRESH_TIME [= 14400]
需要经过多少秒才能从数据库中提取用户而不是信任cookie。这对于确保即使用户的属性在数据库中发生变化,用户的cookie也会得到更新非常有用。
。
。
。
django-session-user
===================
此应用程序是一个简单的中间件,可以添加到您的Django项目中
,从而将登录用户的信息从会话中存储和检索。
。
安装
------------
在AuthenticationMiddleware之后将sesionuser中间件行添加到您的MIDDLEWARE_CLASSES中
。
MIDDLEWARE_CLASSES = (
# ...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'sessionuser.middleware.SessionUserMiddleware',
# ...
)
为什么要这样做?
------------
您的服务器已经获取了用户会话的内容,该会话已包含用户的身份。为什么不将用户类数据的其余部分也存储在其中呢?这样您就不必为每个经过身份验证的Web请求向数据库发出请求。
。
此外,如果您正在使用基于cookie的会话后端(如
django-cookie-sessions,由我本人编写),您可以让其他系统,甚至非Django系统,读取cookie并了解更多有关用户的信息。
。
。
。
。
可定制的设置
---------------------
COOKIE_USER_REFRESH_TIME [= 14400]
需要经过多少秒才能从数据库中提取用户而不是信任cookie。这对于确保即使用户的属性在数据库中发生变化,用户的cookie也会得到更新非常有用。
。
。
。