0

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

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

4

1 回答 1

0

正如@Justin Russo 所说,会话和设置会话的中间件实际上是您唯一的选择。

因为您永远不知道某人将通过什么 url 模式/视图到达您的应用程序,所以我将在中间件中获取/设置此会话,该中间件可以对每个请求进行您需要的任何处理,而不考虑 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
于 2013-10-13T00:49:45.590 回答