乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Django中間件----登錄攔截器

       java_laq小館 2014-01-27

      繼續(xù)上篇關于Django的日志,探索Django的其他方面。

      首先想到的是Django里面有沒有類似filter的組件。遺憾的是,并未發(fā)現(xiàn)Django中有類似過濾器或者攔截器的概念。然而,Django提供了功能或許更為強大(至少是不弱于)這些概念的新東西:middleware

      設想這樣的需求:在用戶未登錄之前,他訪問任何頁面,都將轉入登錄頁面,要求其登錄。這樣的判斷最適合放在頁面邏輯的前端,而不是在頁面邏輯中實現(xiàn)。

      我們寫這樣的一個middleware,它攔截所有訪問非login頁面的請求,檢測其cookie,并判斷將請求轉向login頁面或者其請求的頁面。

      middleware代碼如下:

       

      Python代碼  收藏代碼
      1. ''''' 
      2. Created on 2009-4-9 
      3.  
      4. @author: Administrator 
      5. '''  
      6. from django.http import HttpResponseRedirect   
      7. from django.contrib.auth import SESSION_KEY   
      8. from urllib import quote   
      9. class QtsAuthenticationMiddleware(object):   
      10.     def process_request(self, request):  
      11.         #print request.path   
      12.         if request.path != '/login/':   
      13.             if "favorite_color1" in request.COOKIES:  
      14.                 pass  
      15.             else:  
      16.                 return HttpResponseRedirect("http://")  

       

       

       

      settings.py中配置此middleware

       

      Python代碼  收藏代碼
      1. MIDDLEWARE_CLASSES = (  
      2.     'django.middleware.common.CommonMiddleware',  
      3.     'django.contrib.sessions.middleware.SessionMiddleware',  
      4.     'django.contrib.auth.middleware.AuthenticationMiddleware',  
      5.     'middleware.QtsAuthenticationMiddleware',  
      6. )  

       

       

       

      當用戶第一次請求musician_list,會轉向兩全其美。

      只有用戶訪問過login,設置了cookie,再訪問musician_list,才能成功。

      • src.rar (3.7 KB)
      • 下載次數(shù): 36
      分享到:

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多