问题标签 [django-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7375 浏览

python - 如何测试 django 缓存?

有没有办法确保页面来自生产服务器和开发服务器上的缓存?

该解决方案不应涉及缓存中间件,因为并非每个项目都使用它们。虽然解决方案本身可能一个中间件。

仅检查数据是否过时并不是 IMO 一种非常安全的测试方法。

0 投票
14 回答
82661 浏览

django - 你怎么知道 memcached 是否在做任何事情?

我正在测试使用 memcached 来缓存 django 视图。如何判断 memcached 是否真的在缓存 Linux 命令行中的任何内容?

0 投票
1 回答
3375 浏览

python - Django 数据库缓存

我正在做一个小项目,我想为最终用户提供多个缓存选项。我认为使用 Django 将 memcached 交换为基于数据库或文件的缓存非常简单。我的 memcached 实现就像一个冠军,没有任何问题。我在我的页面上放置了时间戳,并且 curl 始终在我希望缓存正常工作的位置显示较旧的时间戳。但是,当我切换到数据库缓存时,我没有在数据库中获得任何条目,并且公然缓存不起作用。

从我在文档中看到的所有应该是必要的是将后端从:

至:

该表在运行所需的 manage.py (createcachetable) 行后存在,我可以很好地查看它。我目前正在测试中,所以我使用的是 sqlite3,但据我所知,这并不重要。我可以确认该表完全是空的,并且在任何时候都没有被写入。此外,正如我之前所说,我的时间戳也是“错误的”,这给了我更多证据表明某些事情不太正确。

有什么想法吗?我正在使用 sqlite3、Django 1.0.2、python 2.6,目前在 Ubuntu Jaunty 机器上通过 Apache 提供服务。我确定我只是在掩饰一些简单的事情。感谢您提供的任何帮助。

0 投票
4 回答
2140 浏览

django - Django 的缓存模块可以在 Google App Engine 上运行吗?

我在 Google App Engine 上运行 Django (1.0.2),并且想知道以下Django 缓存模块中的哪些(如果有)应该与Google 的 memcache实现一起工作:

中间件

  • django.middleware.cache.UpdateCacheMiddleware

  • django.middleware.common.CommonMiddleware

  • django.middleware.cache.FetchFromCacheMiddleware

装饰器

  • django.views.decorators.cache.cache_page

模板片段缓存

在模板中:

低级 API

  • django.core.cache

如果这些模块中的一些或全部应该工作,是否需要进行任何更改才能使它们正常工作,并且在使用它们时是否应该注意任何问题或陷阱?

我仔细阅读了文档并花了一些时间搜索谷歌,但我还没有看到这个问题的答案。我怀疑它可能是一个“交钥匙”的解决方案,但我对使用 Django 类而没有至少一个参考,而其他人已经完成它而没有问题。

非常感谢你。

0 投票
2 回答
286 浏览

django - 使用中间件或自定义模板标签进行不经常更改的代码段

我的侧边栏中有一个我想要的小片段。该片段将在每个页面上可见,虽然获取成本很低(在我的超慢上网本上大约需要 50 毫秒!),但更改频率非常低,以至于我很想缓存它(部分原因是我还没有使用 Django 的缓存框架,我想学习)。

我不确定最好的方法是什么 - 中间件或自定义模板标签?我不确定使用这些方法实现缓存有多容易。这是想要做的标准事情(即,每个页面上可见的片段的片段缓存),我确信有一种Djangonic方法可以做到这一点,但我找不到它是什么。

你怎么做呢?

0 投票
2 回答
357 浏览

python - 缓存非视图返回

我对视图有十几个权限查找,以确保用户具有在系统上执行某些操作的正确权限(即确保他们在正确的组中,如果他们可以编辑他们的个人资料,如果他们是组管理员, ETC)。

检查可能如下所示:

这实际上是 Django 教程中的代码(我的有点丑)。有时检查是数据库密集型的,会触发多个查询。随着大量用户访问经过权限检查的页面,事情很快就会变得非常缓慢。

我的问题是,我可以(在您的帮助下)为 user_passes_test 装饰器构建一个包装器(或替换),该装饰器在缓存中搜索一个键'TESTCACHE' + user.pk + 'testname',如果它不存在,则执行测试并保存其结果。

我以前从未写过装饰器,但我想它看起来几乎与那个相同user_passes_test,只是作为字符串通过测试:

和以往一样,让我知道我是否生气或者 Django 是否已经为我做了这件事(所以我在其他地方遇到了问题)。

编辑:标准装饰器可以在这里找到:http ://code.djangoproject.com/browser/django/trunk/django/contrib/auth/decorators.py

我认为替换它可能user_passes_test比包装它更容易,所以这是起点。当然,如果您觉得我在该声明中不正确,请告诉我:

0 投票
4 回答
1042 浏览

django - django + memcached:限制为 1 mb 的问题

有谁知道在 memcached 中保持数据大于 1mb 的任何解决方案?

在设置和从 memcached 获取后合并这些块之前将大数据切割为 1mb 块并没有什么大不了的。并且该算法可以对用户透明地工作。

这可以在此片段http://www.djangosnippets.org/snippets/488/的基础上工作

0 投票
7 回答
12565 浏览

django - Django中的每个请求缓存?

我想实现一个装饰器,为任何方法提供每个请求的缓存,而不仅仅是视图。这是一个示例用例。

我有一个自定义标签,可以确定一长串记录中的一条记录是否是“收藏夹”。为了检查一个项目是否是收藏夹,您必须查询数据库。理想情况下,您将执行一个查询以获取所有收藏夹,然后仅针对每条记录检查该缓存列表。

一种解决方案是获取视图中的所有收藏夹,然后将该集合传递给模板,然后传递给每个标记调用。

或者,标签本身可以执行查询,但仅在第一次调用时执行。然后可以缓存结果以供后续调用。好处是您可以在任何视图上的任何模板中使用此标签,而无需提醒视图。

在现有的缓存机制中,您可以将结果缓存 50 毫秒,并假设这与当前请求相关。我想让这种相关性可靠。

这是我目前拥有的标签的示例。

有没有办法从 Django 获取当前请求对象,而无需传递它?从标签中,我可以只传递请求,该请求将始终存在。但我想从其他功能中使用这个装饰器。

是否存在按请求缓存的现有实现?

0 投票
1 回答
97 浏览

python - 擦除模板缓存

我有一个 Django 应用程序,用户可以在其中选择 2 种界面模式,该模式会影响某些页面......对于那些页面我使用不同的模板

在 urls.py 我有这样的东西:

那么我的看法是这样的:

我的问题是当用户选择模式 2(在我的自定义配置页面中)时,模式不会改变,直到服务器重新启动(apache 或 runserver.py 都是相同的)。

我认为这与缓存有关,但我找不到如何擦除该缓存。(每次更改 Config.mode。)

0 投票
2 回答
1939 浏览

python - How do I access template cache? - Django

I am caching html within a few templates e.g.:

Can I access the cache using the low level library? e.g.

I really need to have some fine-grained control over the template caching :)


Any ideas? Thanks everyone! :D