• 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 %}
    
    # 一共是三个级别,

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

  • 相关阅读:
    Harvest of Apples (HDU多校第四场 B) (HDU 6333 ) 莫队 + 组合数 + 逆元
    BZOJ4383/LuoGuP3588 Pustynia/PUS 线段树建图优化
    初识splay
    nowcoder牛客wannafly挑战赛20
    初识树链剖分
    二维数据结构---线段树
    初识莫队——小Z的袜子
    kuangbin带我飞QAQ 并查集
    十个二分九个错?教你如何优雅地写二分查找
    Codeforces Round #436 (Div. 2) E. Fire(dp 记录路径)
  • 原文地址:https://www.cnblogs.com/andy0816/p/12293717.html
Copyright © 2020-2023  润新知