2013-07-15 53 views
0

在我嘗試學習django時,我一直試圖製作dayscore.net的克隆。這意味着,我想使用django製作網站,這並不是指git clonehg clone如果您看一下,每當新用戶進入天數記錄時,您將獲得一個帶有特殊散列代碼的獨特會話。你會如何使用django實現這樣的事情?創建匿名django會話

+0

Django會話完全一樣。查看[documentation](https://docs.djangoproject.com/en/dev/topics/http/sessions/)。 – Sudipta

回答

2

1)正如在您的問題的評論中指出的那樣,如果您啓用了Session中間件,Django會將會話ID應用於任何請求。

2)如果您仍想自己生成會話標識,您可以創建中間件,其中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 

優點

  • 無論什麼網頁的網站用戶的進來,如果他是不哈希碼,他要爲他生成散列碼匿名。

缺點

  • 中間件將應用的每個請求來服務器就像所有其他的中間件。
+0

不,我想重新創建它,只使用django。 –

+0

使你的問題更加準確,你想做出這樣的行爲,而不僅僅是克隆(就像'wget -r'這個網站) – shalakhin

+0

我認爲這很明確,因爲你談論的東西就像'facebook clone'和'hackernews clone'所以我認爲這不會造成混淆。我的意思是,你最後一次想要克隆一個實際的網站是什麼時候? –