V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
maiziedu
V2EX  ›  Python

Django 学习之站点缓存详解

  •  
  •   maiziedu · 2017-08-08 16:44:15 +08:00 · 1778 次点击
    这是一个创建于 2697 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文和大家分享的主要是 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/

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2578 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.