zoukankan      html  css  js  c++  java
  • Django学习之站点缓存详解

       本文和大家分享的主要是django缓存中站点缓存相关内容,一起来看看吧,希望对大家学习django有所帮助。

      缓存整个站点,是最简单的缓存方法

      在 MIDDLEWARE_CLASSES 中加入 “update” “fetch” 中间件

      MIDDLEWARE_CLASSES = (

      ‘django.middleware.cache.UpdateCacheMiddleware’, #第一

      'django.middleware.common.CommonMiddleware',

      ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后

      )

      “update” 必须配置在第一个

      “fetch” 必须配置在最后一个

      参数配置

      CACHE_MIDDLEWARE_ALIAS 缓存别名(默认:default

      CACHE_MIDDLEWARE_SECONDS – 每个页面的缓存时间(s)(默认:600s)

      CACHE_MIDDLEWARE_KEY_PREFIX – 如果缓存被多个使用相同 Django 安装的站点共享,配置此参数为站点名称或其它能代表站点的唯一字符串,以防止key冲突。如果不在意,可为空。

      //对中间件进行说明

      FetchFromCacheMiddleware

      会缓存 GET HEAD 200 状态的 responses,而且这些 request response headers 是允许的;

      同一个 URL request, 不同查询参数,他的 Responses 会被作为不同 page 分别缓存;

      这个中间件期待用具有相同 response headers GET request response 进行响应,这样它就可以用缓存的 GET response 响应 HEAD request

      UpdateCacheMiddleware

      此中间件会在每个 HttpResponse 中自动设置一些 headers:

      对于一个页面的新版本(未被缓存过)的请求,设置 Last-Modified header 为当前日期/时间;

      设置 Expires header 为当前时期/时间 + 定义的CACHE_MIDDLEWARE_SECONDS

      设置 Cache-Control header max age 指令为 CACHE_MIDDLEWARE_SECONDS (max age是指缓存的内容将在多少秒后失效)

      特殊情况:

      如果 view 设置了自己的 cache 过期时间 (如:设置了 Cache-Control max-age), 则页面的缓存过期时间会以 view 的过期时间为准。

    原文链接:http://www.maiziedu.com/wiki/django/site/

  • 相关阅读:
    JavaScript编码规范
    查询Sqlserver数据库死锁的一个存储过程
    Sql Server 阻塞的常见原因和解决办法
    在Repeater中使用DropDownList的方法
    springboot集成jsp
    springboot 集成 freemarker
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? idea maven 打包报错问题解决
    手动安装sublimeText3插件
    Sublime text 3搭建Python开发环境及常用插件安装
    qemu通过控制台向虚拟机输入组合键
  • 原文地址:https://www.cnblogs.com/space007/p/7307622.html
Copyright © 2011-2022 走看看