我正在使用DJANGO和SQL创建一个在线商店(我通过pyodbc连接到数据库,它正常工作)。
这是为了实验。我在他或她启动网站时分配参与者ID。如何记住整个应用程序中的参与者ID?
答案 0 :(得分:0)
正如@Justin Russo所说,设置会话的Sessions和middleware确实是您唯一的选择。
因为你永远不知道有人会通过你的应用程序到达你的应用程序的url模式/视图,所以我会在中间件中设置/设置此会话,这可以在每个请求上执行所需的任何处理,无论的网址。
# settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'some_app_module.middleware.UserSession',
)
class UserSession(object):
def process_request(self, request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
request['user_session'] = request.session.get(ip, ip)
return request