每个模型的django缓存清除

roan的Python项目详细描述


Roan是每种型号的URL清除Django应用程序。它连接到模型信号并清除保存、更新或删除模型的url。

开始

安装

您可以使用pip:

安装Roan
$ [sudo] pip install roan

唯一的依赖项是requests,它将由pip自动安装(如果不使用--no-deps参数)。

配置

Roan仅使用可选设置:ROAN_PURGE_URL。如果不指定,则为http://localhost/purge

配置示例:

ROAN_PURGE_URL = 'http://nginx.souza.cc/clean'

nginx proxy_缓存支持

因为roan是基于个人需求的,所以它基于nginx的proxy_cache

假设您有以下清除映射:

location ~ /purge(/.*) {
    allow 127.0.0.1;
    deny all;
    proxy_cache_purge roan "$scheme://$host$1";
}

现在假设您有以下Django模型:

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()

你有一个url /posts,用户可以在这里看到帖子列表。如何设置永久缓存并期望刷新缓存 每次保存新邮件时?或者每当一篇文章被更新或删除?

使用roan可以将一个或多个模型连接到一个或多个url。所以您可以将Post模型与/postsurl连接, 无论何时保存、更新或删除帖子,roan都会向/purge/postsurl发出请求。

用法

一旦安装并配置了roan,只需在django执行的文件中调用它(例如:应用程序的models.py)。 下面是上面示例的代码,每当保存或删除帖子时清除/postsurl:

from roan import purge
from models import Post

purge("/posts").on_save(Post)
purge("/posts").on_delete(Post)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java创建猜谜游戏程序   JavaWebSocketContainer。connectToServer似乎挂起了   如何在java中中断函数   java c#socket client multiple BeginSend()未到达服务器   不可见的组件然后在Java中的窗格之间切换   java在应用程序类中使用静态接口安全吗?   java等待函数完成,直到回调到来   使用DataOutputStream时的java新行,Android   java服务对象的定义是什么?   基于视图的javahibernate复合密钥   java将varchar连接到char在JPA(oracle)中不起作用   如何在java中通过point类读取多个点?