zoukankan      html  css  js  c++  java
  • 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 %}
    
    # 一共是三个级别,

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

  • 相关阅读:
    如何解决"应用程序无法启动,因为应用程序的并行配置不正确"问题
    C/C++时间函数使用方法
    vim: C++文件之间快速切换(含视频)
    HOWTO install commonlisp on ubuntu
    TagSoup home page
    Quicklisp beta
    What is Lispbox?
    猫人女王
    Lisp in a box 安装指南 JAAN的专栏 博客频道 CSDN.NET
    Ubuntu 12.04 改造指南 | Ubuntusoft
  • 原文地址:https://www.cnblogs.com/andy0816/p/12293717.html
Copyright © 2011-2022 走看看