本文共 748 字,大约阅读时间需要 2 分钟。
cache_page是django自带的装饰器,用起来很方便。
from django.views.decorators.cache import cache_page@cache_page(24*3600)def test(request):
直接在view的function中添加装饰器chche_page(过期时间),就可以对该页面进行缓存。但是这个cache函数管杀不管埋,如果缓存了列表页 那么修改/创建新的item的时候,如何更新列表页的缓存是个大问题. 翻开cache_page代码看了很久,它生成key的方法非常繁琐,先要缓存request的header,然后还要对url进行hash,要自己完全替代这个函数,还需要写更复杂的Middleware,最后找到一个函数,一般情况下够用了
from django.core.cache import cachefrom django.http import HttpRequestfrom django.utils.cache import get_cache_keydef expire_page(path): request = HttpRequest() request.path = path key = get_cache_key(request) if cache.has_key(key): cache.delete(key)
转载地址:http://gavws.baihongyu.com/