0

在我尝试学习 django 的过程中,我一直在尝试克隆dayscore.net. 意思是说,我想用django做网站,这不是指agit clone或者a hg clone。如果你看一下,每次有新用户来到dayscore,你都会得到一个独特的会话,带有一个特殊的哈希码。你将如何使用 django 实现这样的目标?

4

1 回答 1

2

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

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

中间件.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

优点

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

缺点

  • 就像所有其他中间件一样,中间件将应用于到达服务器的每个请求。
于 2013-07-15T06:24:08.950 回答