问题标签 [django-caching]

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 投票
1 回答
218 浏览

django - 为除工作人员之外的所有人缓存

我有一个 django 站点,我想在每个非管理员页面的顶部为员工粘贴一个“管理栏”。它将包含有用的东西,如页面编辑工具等。

问题来自我@cache_page在很多页面上使用装饰器。如果普通用户点击页面,缓存版本会出现没有管理栏(即使对于管理员用户),如果管理员首先点击页面,普通用户会看到管理栏。

可以单调乏味地浏览模板,添加区域缓存块,但是模板很多,而且寿命太短了。

理想情况下,有一种方法可以告诉缓存忽略来自管理员用户的缓存获取/设置请求......但我不知道如何最好地实现它。

你将如何解决这个问题?

0 投票
1 回答
97 浏览

python - 擦除模板缓存

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

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

那么我的看法是这样的:

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

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

0 投票
3 回答
1275 浏览

django - Django - 多站点站点缓存

我在一个 Django 应用程序下有许多站点,我想在这些站点上实现站点范围的缓存。然而,事实证明这是一个真正的麻烦。

发生的事情是settings.CACHE_MIDDLEWARE_KEY_PREFIX在启动时设置一次,我无法继续根据当前站点的内容进行更改。因此,如果一个 url 页面http://website1.com/abc/被缓存,则http://website2.com/abc/呈现缓存版本的http://website1.com/abc/. 这两个网站都在同一个 Django 实例上运行,因为 Django Sites 似乎允许我们这样做。

这是不正确的方法吗?因为我无法CACHE_MIDDLEWARE_KEY_PREFIX在运行时动态设置,所以我无法使用 Django 的站点范围缓存来缓存多个站点。我也无法为模板和视图缓存执行此操作。

我得到的印象是,真正需要设置的方式是每个站点都需要自己的 Django 实例,除了设置文件之外几乎相同,在我的情况下,设置文件的区别仅在于CACHE_MIDDLEWARE_KEY_PREFIX. 这些 Django 实例都读取和写入同一个数据库。这让我很担心,因为它可能会产生许多新问题。

我是走在正确的轨道上还是我误会了多站点架构需要如何工作?我检查了 Django 文档,并没有真正提到如何为服务于多个站点的 Django 应用程序处理缓存(这不是低级缓存)。

0 投票
5 回答
7501 浏览

django - 如何在 Django 中使用 2 个不同的缓存后端?

我需要使用 memcached 和基于文件的缓存。我在设置中设置了我的缓存:

dummy 是暂时的。文档说:

好的,但是我现在如何设置和获取仅用于“inmem”缓存后端的缓存(将来的 memcached)?文档没有提到如何做到这一点。

0 投票
1 回答
523 浏览

django - 数据库数据的更改未反映在连续循环脚本中的 Django 查询集中

我正在使用 Django 的 ORM 从数据库中获取新添加的条目并将它们传递给消息队列。我在无限循环中执行此操作,每次循环迭代中的问题即使在此脚本运行时添加/删除/编辑条目,我也会得到相同的查询集,

代码如下:

我应该怎么做才能反映每次迭代中的最新数据?

0 投票
1 回答
251 浏览

django - 在 Django 缓存中高效存储大表

我使用 Django 和 jqGrid 并通过 AJAX 加载页面。有时,查询非常复杂,页面加载速度非常慢,因为远页面要慢得多(这是意料之中的,结果通常超过 100k 个对象)。我认为结果缓存会解决这个问题,增加了第一页的加载时间,但随后强烈加速了后续页面的加载。

相反,它使第一页的加载速度非常慢,甚至后续页面也需要大量时间(在标准 PC 上为 11 秒)。我正在使用 locmem 缓存后端。有任何想法吗?为了进行比较,我尝试将结果存储在全局字典中,效果要好得多(后续页面只需 1 秒),但我听说这不是一种安全的方法。

有任何想法吗?

0 投票
1 回答
5575 浏览

python - Django中的全局变量/变量缓存

在我的网站中,我想在侧边栏中的多个页面中向用户展示查看次数最多的产品类别。

所以在每个不同的视图中我都有:

并在各种模板中

在那个:

但是,我想每 2 天左右只计算一次 most_viewed_categories 值,而不是在每个视图中计算它。

我知道可以缓存视图,但这更像是一个变量缓存。是否可以将此变量缓存在 Django 服务器中的某处并仅在该时间段后更新它?怎么做呢?

谢谢

0 投票
1 回答
199 浏览

django-cache - Django 缓存系统是如何工作的?

Django 缓存系统是如何工作的?

0 投票
1 回答
381 浏览

django - Google Maps Ground Overlay 不缓存 Django 提供的动态图像

我在 javascript 中设置了一个谷歌地图叠加层(v 3.10)来显示在服务器上生成的图像:

当 url 指向静态 url 时,覆盖可以正常工作。但是,当它指向 Django (v 1.4) 动态 url 时,图像会正确显示,但随着地图的滚动,它会不断向 url 发出服务器请求。 例如:

在 Django urls.py 中:

该 url 重定向到此代码:

因此,在我看来,谷歌地图/浏览器出于缓存目的处理图像的方式存在一些差异,可能与 HTTP 标头中的某些内容有关。我怎样才能使它在检索图像后不会继续发出服务器请求?

通过检查浏览器控制台中的响应标头,静态图像似乎具有“Content-Length”和“Last-Modified”字段,而动态图像没有。不确定这是否相关。

感谢任何帮助。

0 投票
1 回答
134 浏览

django - Django + memcached: generate cached pages automatically?

I am using Django + memcached and have a (hopefully) simple question.

My database is updated once a day. My pages are set to time out after 24 hours.

Is there a way to generate all the pages of the site into the cache once each day, just after the database is updated, in advance of any users coming to them?

I'd like the first user of the day to see the fast-loading cached version, not the slow-loading non-cached version.

I guess I could do this by scraping the site, but is there a neater way?