1,配置缓存
CACHES = { ‘default‘: { ‘BACKEND‘: ‘django.core.cache.backends.filebased.FileBasedCache‘, #引擎 ‘LOCATION‘: ‘d:\\django_cache‘, ‘TIMEOUT‘: 300, # 缓存超时时间(默认300,None表示永不过期,0表示立即过期) ‘OPTIONS‘: { ‘MAX_ENTRIES‘: 300, # 最大缓存个数(默认300) ‘CULL_FREQUENCY‘: 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3) }, # ‘KEY_PREFIX‘: ‘‘, # 缓存key的前缀(默认空) # ‘VERSION‘: 1, # 缓存key的版本(默认1) # ‘KEY_FUNCTION‘ 函数名 # 生成key的函数(默认函数会生成为:【前缀:版本:key】) }} 2,应用缓存单独视图
方式一: from django.views.decorators.cache import cache_page @cache_page(60 * 15) #缓存15分钟 def my_view(request): ... 方式二: from django.views.decorators.cache import cache_page urlpatterns = [ url(r‘^foo/([0-9]{1,2})/$‘, cache_page(60 * 15)(my_view)), ]
a. 引入TemplateTag {% load cache %} b. 使用缓存 {% cache 5000 缓存key %} #缓存5000秒,缓存key 缓存内容 {% endcache %}
使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存 MIDDLEWARE = [ ‘django.middleware.cache.UpdateCacheMiddleware‘, #只有repone # 其他中间件... ‘django.middleware.cache.FetchFromCacheMiddleware‘, #只有request 如果有不需要缓存的可以继承他,匹配路径 return None ]
# CACHE_MIDDLEWARE_SECONDS = 10这个设置只针对上面。缓存10秒。它的优先级更高
CACHE_MIDDLEWARE_ALIAS = "" CACHE_MIDDLEWARE_SECONDS = "" CACHE_MIDDLEWARE_KEY_PREFIX = ""
注意
时间: 2024-10-06 14:56:46