django框架进阶使用缓存长期维护

 ###############   django-缓存页面    ###############

###########################################
# 全站缓存,
# 整个网站的所有的页面都做缓存
# 要有一个中间件,
# 在中间件里面做缓存,
# 使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,
# 当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',  # 开头加
    # 其他中间件...
    'django.middleware.cache.FetchFromCacheMiddleware',  # 结束加
]

CACHE_MIDDLEWARE_ALIAS = ""
CACHE_MIDDLEWARE_SECONDS = ""  # 设置缓存时间,单位秒
CACHE_MIDDLEWARE_KEY_PREFIX = ""

# 这样第一次访问了页面之后,就会被缓存起来,然后再次访问页面就从缓存取了,

##################################

# 单视图缓存
# 因为全站缓存太大了,可以对某一个视图进行缓存,
# 加装饰器,
# 方式一:
from django.views.decorators.cache import cache_page
@cache_page(60 * 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是指的5000秒之后消失,key是自己写的
#     缓存内容
# {% endcache %}

# 一共是三个级别,

###############    结束线    ################

原文地址:https://www.cnblogs.com/andy0816/p/12293717.html