2012-12-05 32 views
4

我正在試驗各種Django 1.3緩存方法以用於登錄頁面。此頁面包含多個數據庫查詢以及用戶認證的結果。到目前爲止,性能最好的解決方案是使用@cache_page decorator來緩存整個視圖函數響應。問題是用戶身份驗證也被緩存。Django:緩存頁面中除用戶身份驗證以外的所有內容

我可以在每個用戶的緩存中創建一個密鑰,但這看起來很浪費;一次又一次緩存相同的登錄頁面,唯一的區別是用戶的身份驗證。除了認證外,我還使用了template fragment cachinglow-level caching,但性能遠不如@cache_page修飾器方法。

有沒有辦法讓@cache_page的性能沒有大量冗餘的基於用戶的緩存?

回答

2

看看這個博客帖子:http://www.holovaty.com/writing/django-two-phased-rendering/

基本的技術是包裝在一個模板標籤,防止模板引擎的渲染它們,然後緩存特定於用戶的細分,然後重新呈現緩存輸出填寫用戶的詳細信息。

Django 1.5包含一個名爲verbatim的標籤,可以用來替代帖子中的自定義raw標籤;你仍然需要自定義CachedTemplateMiddleware或等價物。

+0

這是我正在尋找的線,謝謝。 – Ian

相關問題