Django缓存机制 三个粒度: 1 全站缓存 settings.py 全局配置文件 用中间件: MIDDLEWARE = [ # 'django.middleware.cache.UpdateCacheMiddleware', 'django.middleware.security.SecurityMiddleware', 。。。。。。 # 'django.middleware.cache.FetchFromCacheMiddleware' ] # CACHE_MIDDLEWARE_SECONDS=10 2 单视图: 视图层 用装饰器 FBV from django.views.decorators.cache import cache_page # @cache_page(24*60*60) 3 局部页面: 模板层:html文件 {% load cache %} {% cache 5 'test' %} 两个参数:时间,唯一标识 {{ ctime }} {% endcache %} Django6种缓存的配置 一般用的最多的是redis或者内存 settings配置: #内存: CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', # 指定缓存使用的引擎 'LOCATION': 'unique-snowflake', # 写在内存中的变量的唯一值 'TIMEOUT':300, # 缓存超时时间(默认为300秒,None表示永不过期) 'OPTIONS':{ 'MAX_ENTRIES': 300, # 最大缓存记录的数量(默认300) 'CULL_FREQUENCY': 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3) } } } # redis配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "CONNECTION_POOL_KWARGS": {"max_connections": 100} # "PASSWORD": "123", } } }