Django的缓存清除钩是一个可重用的Django应用程序来处理缓存失效。
这个程序基本上提供了一种机制,很容易勾到模型回调需要时无效前端缓存。
目前,只有清漆后端实现,但设计时考虑其他可能的后端创建。
用法
加入“cache_purge_hooks”你INSTALLED_APPS。
#our假装模型
类岗位(models.Model):
 标题= models.CharField(MAX_LENGTH = 200)
 塞= models.SlugField(唯一=真,MAX_LENGTH = 200)
 身体= models.TextField(空白=真,空=真)
从cache_purge_hooks进口cache_purge_hook
cache_purge_hook(邮政)
如上图所示,cache_purge_hooks模块包含一个函数cache_purge_hook。传递作为第一个参数模型。在模型实例的get_absolute_url()方法缓存机制小猪背上,并清除该特定URL后端缓存。
如果有任何实例有多个相关的网址,定义一个定制get_absolute_urls()方法返回的URL无效的列表:
类类别(models.Model):
 名称= models.CharField(MAX_LENGTH = 200)
 塞= models.SlugField(唯一=真,MAX_LENGTH = 200)
 标题= models.CharField(MAX_LENGTH = 127,空=真)
 高清get_absolute_url(个体经营):
   返回逆(“类”,kwargs = {
      “类别”:self.slug
    })
 高清get_absolute_urls(个体经营):
    GAU = self.get_absolute_url()
   返回[GAU,反向('blog_home')]
在上面的模型中,我们有一个博客文章分类模型。这是get_absolute_url()方法绑在urls.py中定义的特定命名路线,但任何改变的类别也必须体现在博客首页(比方说,该主页包含标签云的所有类别)。当这些信息被更改的页面必须失效。
请注意,您还必须明确抢get_absolute_url()值。它不会,如果get_absolute_urls称为()的存在。
如果不是你喜欢的,你也可以通过作为第二参数purge_related_blog一个函数,一个实例,并返回的URL列表。
例如:
从facebook_comments.models进口FacebookCommentCache
高清purge_related_blog(实例):
  PR = urlparse.urlparse(instance.url)
 返回[pr.path,]
cache_purge_hook(FacebookCommentCache,purge_related_blog)
这也是有用的,因为在上述的情况下,该网站是利用可重复使用的另一应用程序(facebook_cached_comments)。这是比黑客攻击了一个第三方的代码提供get_absolue_urls()好得多
要求:
- 在Python中
- 在Django的
- 在蟒蛇的清漆
评论没有发现