2013-08-01 52 views
1

由於我是django-cache的新手,我試圖在Django中緩存一個特定的視圖。 我不確定數據是從緩存還是從數據庫中獲取。 如何驗證?作爲一個新手,請檢查我是否正確緩存視圖?Django緩存測試

Views.py

@cache_page(900) 
def dashboard(request): 

    __something__ 

Settings.py

CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 
     'LOCATION': '127.0.0.1:11211', 
    } 
} 
CACHE_MIDDLEWARE_ALIAS = 'default' 
CACHE_MIDDLEWARE_SECONDS = 600 

回答

1

如果它不是一個觀點,我會推薦這樣的:打開了manage.py shell一個交互的shell ,那麼做:

from django.db import connection 
# execute your functions 
print connection.queries 

執行它們時,此列表將填滿SQL查詢。

但由於這是一個視圖,我建議你使用django-debug-toolbar。除了其他有用的東西外,它還會顯示處理請求時執行的查詢。

0

你正確地做到了。你寫的代碼是用於Memcached Cache而不是數據庫緩存。因此,緩存數據存儲在您的服務器的RAM中,而不是存儲在您的數據庫中。通常這是最快的緩存技術,但是如果你的服務器沒有足夠的內存,這可能會導致你的服務器崩潰,並且你所有的緩存數據都將丟失。

對於數據庫緩存您的緩存設置應配置如下所示,然後您的緩存將存儲爲數據庫表。這裏my_cache_table是表名。

CACHES = { 
    'default': { 
     'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 
     'LOCATION': 'my_cache_table', 
    } 
} 

閱讀Django cache documentation,它有非常有用的信息。