Django缓存配置和使用

- 缓存
		- 配置
			CACHES = {
				'default': {
					'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
					'LOCATION': 'unique-snowflake',
					'TIMEOUT': 300,                                               # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
					'OPTIONS':{
						'MAX_ENTRIES': 300,                                       # 最大缓存个数(默认300)
						'CULL_FREQUENCY': 3,                                      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
					}
				}
			}
		
			
			
			
			CACHES = {
				'default': {
					'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
					'LOCATION': 'D:cache',
					'TIMEOUT': 300,                                               # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
					'OPTIONS':{
						'MAX_ENTRIES': 300,                                       # 最大缓存个数(默认300)
						'CULL_FREQUENCY': 3,                                      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
					}
				}
			}
			
			
			CACHES = {
				'default': {
					'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
					'LOCATION': '127.0.0.1:11211',
					'TIMEOUT': 300,                                               # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
					'OPTIONS':{
						'MAX_ENTRIES': 300,                                       # 最大缓存个数(默认300)
						'CULL_FREQUENCY': 3,                                      # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
					}
				}
			}

		- 应用
			全站缓存:粒度大
				MIDDLEWARE = [
					'django.middleware.cache.UpdateCacheMiddleware',
					'django.middleware.security.SecurityMiddleware',
					'django.contrib.sessions.middleware.SessionMiddleware',
					'django.middleware.common.CommonMiddleware',
					'django.middleware.csrf.CsrfViewMiddleware',
					'django.contrib.auth.middleware.AuthenticationMiddleware',
					'django.contrib.messages.middleware.MessageMiddleware',
					'django.middleware.clickjacking.XFrameOptionsMiddleware',
					'django.middleware.cache.FetchFromCacheMiddleware',
				]
				CACHE_MIDDLEWARE_SECONDS = 5
			
			
			
			单独视图函数:粒度适中
			
				from django.views.decorators.cache import cache_page
				
				@cache_page(5)
				def test(request):
					# user_list = models.UserInfo.objects.all()
					ctime = time.time()
					return render(request,'test.html',{'ctime':ctime})
					
			局部模板:粒度小
				{% load cache %}
				<!DOCTYPE html>
				<html lang="en">
				<head>
					<meta charset="UTF-8">
					<title>Title</title>
				</head>
				<body>
					<h1>{{ ctime }}</h1>

					{% cache 5 'xxxxxfdfdf' %}
						   <h1>{{ ctime }}</h1>
					{% endcache %}

				</body>
				</html>
	

  

原文地址:https://www.cnblogs.com/linzetong/p/8691059.html