繼續(xù)上篇關于Django的日志,探索Django的其他方面。 首先想到的是Django里面有沒有類似filter的組件。遺憾的是,并未發(fā)現(xiàn)Django中有類似過濾器或者攔截器的概念。然而,Django提供了功能或許更為強大(至少是不弱于)這些概念的新東西:middleware。 設想這樣的需求:在用戶未登錄之前,他訪問任何頁面,都將轉入登錄頁面,要求其登錄。這樣的判斷最適合放在頁面邏輯的前端,而不是在頁面邏輯中實現(xiàn)。 我們寫這樣的一個middleware,它攔截所有訪問非login頁面的請求,檢測其cookie,并判斷將請求轉向login頁面或者其請求的頁面。 middleware代碼如下:
在settings.py中配置此middleware:
當用戶第一次請求musician_list,會轉向兩全其美。 只有用戶訪問過login,設置了cookie,再訪問musician_list,才能成功。 |
|
來自: java_laq小館 > 《Python》