django - 清除某些应用程序或页面的 Django 缓存

标签 django caching

是否有可能清除 django 中某些应用程序或某些页面的缓存?
我试图找到它,但徒劳无功。

提前致谢。

最佳答案

像这样的东西可能会帮助你..

    from django.core.cache import get_cache, DEFAULT_CACHE_ALIAS
from django.utils.cache import get_cache_key, _generate_cache_header_key, _generate_cache_key
from django.core.urlresolvers import reverse
from django.http import HttpRequest
from django.conf import settings

def expire_cache(path, args=[], cache_name=None, isview=True, lang_code=None, method='GET'):
    if cache_name is None:
        cache_name = DEFAULT_CACHE_ALIAS

    cache = get_cache(cache_name)
    key_prefix = settings.CACHES[cache_name].get('KEY_PREFIX', '')

    request = HttpRequest()
    if isview:
        request.path = reverse(path, args=args)
    else:
        request.path = path

    language_code = lang_code or getattr(settings, 'LANGUAGE_CODE')
    if language_code:
        request.LANGUAGE_CODE = language_code

    header_key = _generate_cache_header_key(key_prefix, request)

    if not header_key:
        return False

    headerlist = cache.get(header_key, None)
    if headerlist is not None:
        cache.set(header_key, None, 0)
        page_key = _generate_cache_key(request, method, headerlist, key_prefix)

        if not page_key:
            return False

        cache.set(page_key, None, 0)
    return True

expire_cache('apps.yourapp.views.function') 

关于django - 清除某些应用程序或页面的 Django 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7257953/

相关文章:

python - 异步 Django 模型查询是否可行?

python - 如何通过 django Rest 框架使用数据表服务器端处理

http - 为什么 ETag 不足以使浏览器缓存失效?

c# - 如何使用 gzip 压缩 .net 对象实例

javascript - 延迟加载 Javascript,对象不是从 IE8 缓存创建的

c++ - 缓存设计 : flyweight of mutable entity objects based on an immutable key

jquery - django jquery 管理问题

django - 在迁移中添加django管理员权限:权限匹配查询不存在

python - 找不到 msguniq。确保安装了 GNU gettext 工具 0.15 或更新版本。 (Django 1.8 和 OSX ElCapitan)

grails - 如何在Grails中使域类缓存超时(即指定最长期限)