django的扩展http缓存
django-cache的Python项目详细描述
为Django视图增强的cache_page
装饰器。
兼容性
Django缓存在Python2.7、3.4、3.5和3.6上与Django 1.8、1.9、1.10和1.11一起正常工作。
优点
- 修复了一定数量的错误(包括#15855)
- 支持可调用的
cache_timeout
和key_prefix
参数 - 缓存时间可由客户端限制(最小缓存时间可管理,默认为0)
用法
fromdjangocacheimportcache_page@cache_page(cache_timeout=600)defview(request):pass
与last_modified
和/或etag
视图装饰符组合
如果您计划在与last_modified
和/或etag
一起使用cache_page
,后者必须放在cache_page
:
fromdjangocacheimportcache_pagefromdjango.views.decorators.httpimportlast_modified,etagdefetag_generator(request,*args,**kwargs):return'ETag!!'@cache_page(cache_timeout=600)@etag(etag_generator)defview(request,*args,**kwargs):pass
django设置
DJANGOCACHE_MIN_AGE-用于设置缓存的最短期限。默认值为0,这意味着客户端可以通过提供头Cache-Control:max-age=0来请求服务器跳过缓存。
@cache_pageparams
- cache_timeout。默认值是settings.CACHE_MIDDLEWARE_SECONDS。
- key_prefix。默认值是settings.CACHE_MIDDLEWARE_KEY_PREFIX。
- cache_alias。默认值为settings.CACHE_MIDDLEWARE_ALIAS,如果设置为None,则为settings.DEFAULT_CACHE_ALIAS。
- cache_min_age。默认值是settings.DJANGOCACHE_MIN_AGE。
安装
pip install --upgrade django-cache