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