问题标签 [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 投票
0 回答
205 浏览

django-1.8 - Django 内存缓存过期网址

在 django 中使用 memcached 从缓存中清除 url。请求似乎已缓存。get_cache_key 不返回密钥。

设置:

提前致谢。

0 投票
1 回答
754 浏览

django - 为什么 Django 数据库缓存不跨多个线程共享?

似乎每个线程都维护其单独的缓存。我应该只使用我自己的 Django 对象来让多个线程共享一个数据库缓存吗?这样做有什么负面影响?

我面临的问题是:

  1. 我正在使用数据库缓存
  2. 我在处理请求时保存到缓存中
  3. 我在处理下一个请求时从缓存中检索

我希望它在缓存中,但它不存在。通过打印线程标识,我看到它是一个不同的线程。同一个线程获得缓存命中,但不同的线程获得缓存未命中。

我不希望数据库缓存后端会发生这种情况。

0 投票
1 回答
245 浏览

django - 使用缓存响应时出现 CSRF 错误

我正在做一些积极的缓存,当我使用以前缓存的旧响应时,这会导致 CSRF 错误。

有没有办法只刷新缓存响应中的 csrf 令牌?

无法理解 https://docs.djangoproject.com/en/1.10/ref/csrf/中的缓存部分

有人可以详细说明一下吗?

我正在使用数据库后端缓存,并且正在使用 cache.get(key) 和 cache.set(key, value) 来存储和检索响应。

0 投票
1 回答
280 浏览

django - 检查用户在线 Django 1.10

嗨,尝试像示例中那样做:

如何在 django 模板中检查用户是否在线?

但是当添加 'userprofile.middleware.ActiveUserMiddleware',MIDDLEWARE_CLASSES 接收下一个错误时:

谢谢帮助。

可能有人建议如何在 Django 1.10 中检查在线/离线用户

0 投票
1 回答
174 浏览

django - Django - 按用户禁用页面级缓存

我已经为我们的许多页面设置了页面级缓存。但是,有时管理员用户会登录以预览对站点的潜在更改。

有没有办法只为这些用户禁用页面级缓存?

我通读了文档,但什么也没看到。

更新:这是我基于 v1k45 的回答的尝试:

0 投票
1 回答
629 浏览

django - django缓存REST API Urls问题

我遵循了堆栈溢出链接中提供的解决方案,当我从浏览器中使用它时,它运行良好。但是,当我尝试使用 curl 访问该 url 时,它不会为浏览器缓存..

让我解释。

如果我example.org/results?limit=7从我的 chrome 中点击一个 url,它需要8-10 seconds加载并且连续点击需要时间 milliseconds

所以我所做的就是URLcurl命令调用它;但它没有使用缓存的数据并再次创建了缓存。

所以我发现问题出arg在下面代码中的参数上,因为它包含对象中的浏览器标头,该WSGIRequest对象用于缓存键,因为它还包含我不需要缓存的标头。这没有达到我的 curl 请求自动创建缓存的目的celery task

我能做的就是只传递kwargs创建缓存或任何其他替代方法,我可以通过这些替代方法只缓存 url 而不是标题

我在这里先向您的帮助表示感谢。

0 投票
2 回答
2876 浏览

python - 如何在视图中使用 Django Cache 而不缓存所有页面

我试图使用 Django Cache 来改善我的观点。效果很好,400 毫秒到 8 毫秒是完美的。但是当用户第一次访问页面时,Django 缓存页面在标题中包含用户信息,当我尝试注销时,页面继续显示用户信息。

我也尝试在模板中使用缓存,但不好,我的问题来自视图,所以继续 400 毫秒。

我的设置.py

我的观点.py

0 投票
0 回答
50 浏览

python - 在 Django 中缓存每个应用程序而不是每个站点或每个视图

假设我的 Django 网站中有两个应用程序,一个用于 API,一个用于 html 页面,所有以 /api/ 开头的 url 都由 API 应用程序处理。我已经设置了两个缓存,每个缓存都有一个特定的设置,如下所示:

我将如何设置以便对 API 的所有请求都使用“api”缓存​​,而所有其他请求都使用“默认”缓存?

我知道我可以在“api”应用程序的 url 或视图中使用 cache_page 函数/装饰器,但我有很多 url 和视图,所以如果我想更改超时,维护起来会很烦人。

我也知道,当请求以“/api/”开头时,我可以自定义中间件以指向不同的缓存,但是没有更清洁的方法吗?

0 投票
1 回答
34 浏览

django - django中基于模型的缓存而不是基于视图的缓存

我正在开发一个 django 应用程序。该应用程序的主要任务是提供诸如“我今天应该出去吗?”之类的建议。只有一个端点可以获取建议,例如 example.com/。

提供建议的主要逻辑是:

  1. 用户今天有未完成的任务吗?(从 UserTaskModel 查询)

  2. 今天的天气舒服吗?(计算天气预报)

如果两个用户尝试在同一日期获取数据,则 UserTask 查询将不同。但是天气预报查询任务是一样的。如果我使用基于视图的 django 缓存,那么将为每个用户执行天气预报查询。但我想在同一日期为所有用户缓存天气查询数据。它可以通过为天气创建不同的视图来查看实施。但我不想为天气使用另一个端点。

Django 缓存 set-get 方法可用于此任务。但这种方式是完成此类任务的最佳方式吗?在我的示例中,我使用了一个简单的天气计算查询,具体取决于日期。但是这种技术对复杂的查询有用吗?

0 投票
2 回答
1223 浏览

python - Django - 模板渲染性能(我认为)如何检查启用 LocMemCache 是否有效?

我注意到随机一些页面需要 2 到 12 秒才能加载,我安装了调试工具栏,我知道我的查询都是高效的(即没有重复),工具栏显示它们都在毫秒内运行。

我决定关注的一个特定页面是我的搜索页面,它使用了 haystack 和弹性搜索。

我有一个查询 haystack 的函数,我有一个计时器,它在服务器端函数的开头和结尾运行,然后生成查询时间,这个从 0.01 到 0.2 秒变化,无论哪种方式都非常快(下面的视图示例)。但是页面可能需要很长时间才能随机加载。

我在 DJDT 中添加了模板计时面板,但它不支持 Django 2.x,但它仍然显示计时结果从 2000 毫秒到 10000 毫秒+

这使我研究了我在这篇文章中遇到的模板渲染(django:加速模板渲染性能的指南)。虽然我不知道提到的很多事情,但我确实研究了缓存。我已将以下内容添加到我的 settings.py 文件中:

在我的基本模板中,我有一个菜单,可以根据权限显示或隐藏项目,还可以根据模型中的站点类型呈现菜单,所以我认为缓存是一件好事,因为一旦决定了菜单对于用户并且数据库已被查询,它不会改变。(至少我认为这是我应该做的?)

所以我将以下内容添加到我的基本模板中:

所以我的问题是,我在这里有正确的方法吗?我怎么知道侧栏的缓存是否真的有效?除了等待查看页面是否加载缓慢之外,我该如何证明呢?

谢谢

视图.py