Django緩存機制
阿新 • • 發佈:2018-12-21
update 頁面 html nds font 必須 request tor templet
django的緩存
在動態網站中,用戶所有的請求,服務器都會去數據庫中進行相應的增,刪,查,改,渲染模板,執行業務邏輯,最後生成用戶看到的頁面.
當一個網站的用戶訪問量很大的時候,每一次的的後臺操作,都會消耗很多的服務端資源,所以必須使用緩存來減輕後端服務器的壓力.
緩存是將一些常用的數據保存內存或者memcache中,在一定的時間內有人來訪問這些數據時,則不再去執行數據庫及渲染等操作,而是直接從內存或memcache的緩存中去取得數據,然後返回給用戶.
https://www.cnblogs.com/liuqingzheng/articles/9803351.html
Django中的6種緩存方式
- 開發調試緩存
- 內存緩存
- 文件緩存
- 數據庫緩存
- Memcache緩存(使用python-memcached模塊)
- Memcache緩存(使用pylibmc模塊)
經常使用的有文件緩存和Mencache,redis緩存
1.全站緩存:
在setting中配置:
兩個中間件:
MIDDLEWARE = [
# 放頁面的時候,應該放在最前面,放緩存response
‘django.middleware.cache.UpdateCacheMiddleware‘,
‘django.middleware.common.CommonMiddleware‘,
‘django.middleware.cache.FetchFromCacheMiddleware‘,
# 取頁面放在這個位置,最後,取緩存,request
]
# 以秒為單位緩存時間
CACHE_MIDDLEWARE_SECONDS = 10
# 這個配置是:把緩存放在文件指定的文件裏面
CACHES = {
‘default‘: {
‘BACKEND‘: ‘django.core.cache.backends.filebased.FileBasedCache‘, # 指定緩存使用的引擎
‘LOCATION‘: ‘C:\Django_study\catch‘, # 指定緩存的路徑
‘TIMEOUT‘: 300, # 緩存超時時間(默認為300秒,None表示永不過期)
‘OPTIONS‘: {
‘MAX_ENTRIES‘: 300, # 最大緩存記錄的數量(默認300)
‘CULL_FREQUENCY‘: 3, # 緩存到達最大個數之後,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3)
}
}
}
2.單頁面緩存:
在view——視圖層中
from django.views.decorators.cache import cache_page 裝飾器加在視圖函數上即可 緩存5秒 @cache_page(5)
3.頁面局部緩存:
在templete中:
{% load cache %} #第一個參數是緩存時間,第二個參數是別名 {% cache 5 ‘test‘ %} 緩存的時間: {{ ctime }} {% endcache %}
Django緩存機制