如何使用django和sql记住所有站点的用户ID?

时间:2013-10-12 16:10:41

标签: sql django sessionid

我正在使用DJANGO和SQL创建一个在线商店(我通过pyodbc连接到数据库,它正常工作)。

这是为了实验。我在他或她启动网站时分配参与者ID。如何记住整个应用程序中的参与者ID?

1 个答案:

答案 0 :(得分:0)

正如@Justin Russo所说,设置会话的Sessionsmiddleware确实是您唯一的选择。

因为你永远不知道有人会通过你的应用程序到达你的应用程序的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