2011-02-04 92 views

回答

1

您可以通過使用session middleware實現這一點,請確保啓用它在你的項目中。儘管如此,我建議您使用django.contrib.auth來管理會話。它管理數據庫中的會話,比僅僅將用戶名保存在cookie中安全得多

+0

你能不能給我一個代碼什麼的,becuz伊馬在Django分支新的實例; d – user596500 2011-02-04 13:27:15

2

django.contrib.auth應用程序。是爲您的網站添加登錄功能的最佳方式。這個程序。使用django.contrib.sessions應用和中間件。

會話中間件會照顧你在用戶瀏覽器中設置一個cookie。然後,在你的代碼,這意味着你將需要來裝飾你的意見,強制用戶登錄:

from django.contrib.auth.decorators import login_required 

@login_required 
def my_view(request): 
    ... 

內,您的觀點,那麼你將有機會獲得

  • request.session,這是一個dict在那裏你可以在會話
  • request.user,這是user對象

存儲數據,我勸ÿ ou閱讀文檔。文檔是Django的

的最好的地區之一
6

下面是如何使用中間件做

class UserCookieMiddleWare(object): 
    """ 
    Middleware to set user cookie 
    If user is authenticated and there is no cookie, set the cookie, 
    If the user is not authenticated and the cookie remains, delete it 
    """ 

    def process_response(self, request, response): 
     #if user and no cookie, set cookie 
     if request.user.is_authenticated() and not request.COOKIES.get('user'): 
      response.set_cookie("user", 'Hello Cookie') 
     elif not request.user.is_authenticated() and request.COOKIES.get('user'): 
      #else if if no user and cookie remove user cookie, logout 
      response.delete_cookie("user") 
     return response