创建匿名django会话

时间:2013-07-15 06:12:37

标签: django django-sessions

在我尝试学习django时,我一直试图克隆dayscore.net。这意味着,我想使用django创建网站,这不是指git clonehg clone如果您看一看,每当新用户来到dayscore时,您将获得一个唯一的会话,带有特殊的哈希码。你会如何使用django实现这样的目标?

1 个答案:

答案 0 :(得分:2)

1)正如您对问题的评论所指出的,如果您启用了Session中间件,Django会将会话ID应用于任何请求。

2)如果您仍想自己生成会话ID,可以创建中间件,在process_request上您将创建哈希值并将其添加到会话中。

<强> middleware.py

import uuid

class AnonHashMiddleware(object):

    def process_request(self, request):
        """
        If user is not authenticated (anonymous) we set session hashcode
        uuid4 hex
        """
        if not request.user.is_authenticated() and \
                'hashcode' not in request.session:
            request.session['hashcode'] = uuid.uuid4().hex

<强>赞成

  • 无论网站用户的哪个页面进入,如果他是匿名的没有哈希码,他将获得为他生成的哈希码。

<强>缺点

  • 中间件将应用于每个进入服务器的请求,就像所有其他中间件一样。