django 設定 資料庫快取
阿新 • • 發佈:2019-02-05
最近部落格增加了許多新功能,訪問速度有所下降,故啟用了django的資料庫全站快取。
Django 官方快取系統介紹:
https://docs.djangoproject.com/en/1.8/topics/cache/#database-caching
配置cache方式及內部實現機制:
django中cache大體分為三種,即針對全站的快取配置、針對檢視的快取配置、針對資料的快取配置。本站採用資料庫+全站快取。
1.設定快取,在settings.py新增
- CACHES ={
- 'default':{
- 'BACKEND':'django.core.cache.backends.db.DatabaseCache'
- 'LOCATION':'my_cache_table',# 要快取的表名
- 'TIMEOUT':600,# 預設的快取有效時間,以秒計. 預設值是 300 秒(五分鐘).
- 'OPTIONS':{
- 'MAX_ENTRIES':1000# 快取的最大條目數(超出該數舊的快取會被清除,預設值是 300).
- }
- }
- }
2.建立快取表
- python manage.py createcachetable
3.快取整個站點
設定了快取型別之後, 最簡單使用快取的方式就是快取整個站點.
在``MIDDLEWARE_CLASSES`` 設定中新增 django.middleware.cache.CacheMiddleware , 就象下面的例子一樣:
- MIDDLEWARE_CLASSES =(
- 'django.middleware.cache.UpdateCacheMiddleware',# 注意位置,在前
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.cache.FetchFromCacheMiddleware',# 注意位置,在後
- )
4.在settings.py新增CACHE_MIDDLEWARE_SECONDS :每個頁面應該被快取的秒數。
- CACHE_MIDDLEWARE_SECONDS =500# 每個頁面應該被快取的秒數
5.重啟django,就可以體驗快取了。