博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django 自带页面缓存cache_page的使用及清除
阅读量:4300 次
发布时间:2019-05-27

本文共 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)

注意

  • get_cache_key用的是 request.get_full_path()
  • 在url不使用动态参数的情况下,get_full_path() = path
  • 所以这个函数是不完备的,凑后能用
原文链接:http://lutaf.com/65.htm

转载地址:http://gavws.baihongyu.com/

你可能感兴趣的文章
Linux面试题
查看>>
关于NSAutoReleasePool的理解
查看>>
微服务架构系列主题:微服务架构概述
查看>>
微服务架构系列主题:微服务架构解析与实践
查看>>
微服务架构系列主题:微服务架构及其最重要的 10 个设计模式!
查看>>
JavaWeb学习-注解-1-注解快速入门
查看>>
JavaWeb学习-注解-2-注解作用目标限定和保留策略
查看>>
JavaWeb学习-注解-3-反射注解
查看>>
JavaWeb学习-动态代理-1-方法newProxyInstance介绍
查看>>
JavaWeb学习-动态代理-2-invoke()方法和动态代理Waiter类练习
查看>>
RestAssured接口自动化从入门到框架搭建-20-框架组装-Maven项目环境搭建和BaseTest类和日志模块
查看>>
RestAssured接口自动化从入门到框架搭建-21-框架组装-TestBase类功能扩充和工具类TestUtils
查看>>
C++面向对象-1-类和对象以及封装
查看>>
GTest基础学习-04-第3个单元测试-测试夹具test fixture
查看>>
GTest基础学习-05-第5个单元测试-父test fixture和子test fixture的使用
查看>>
GTest基础学习-06-第6个单元测试-接口测试(类型参数驱动)
查看>>
从零开始到设计Python+Selenium自动化测试框架-如何开始
查看>>
Python+Selenium基础篇之2-打开和关闭火狐浏览器
查看>>
Python+Selenium基础篇之3-打开和关闭IE/Chrome浏览器
查看>>
Python+Selenium基础篇之4-XPath的使用
查看>>