Django 缓存除一块以外的所有内容

Django cache everything but a piece

我正在写一个博客应用程序。所有页面(post 的列表,post 的详细信息)都是静态的,我可以预测何时必须更新(例如,当我写一个新的 post 或评论时被添加)。我可以使用 @cache_page 来缓存整个视图。

唯一的问题是在每个页面中我都有一些从 Twitter 收集的数据,我想每 5 分钟更新一次。

Django 提供模板缓存、每个视图缓存和低级缓存框架。使用低级框架,我可以避免计算大部分必须显示在页面上的内容(比如缓存 Post 查询、评论、标签...)。

解决我的问题的最佳方法是什么?如何积极缓存视图/模板的几乎所有内容,但少数部分?

我想避免使用 iframe。

谢谢

您不能为缓存排除 Django 模板的某些部分,这在我所知道的任何其他模板引擎中都不应该。

我的建议是使用 JavaScript 异步加载您不断更改的内容。使用 Twitter 应该特别容易,因为它已经提供了很好的 API.

如果不适合您,您可以随时使用 Django template caching,只缓存部分模板。

一个选项可能是在服务器上设置 Varnish。我自己不熟悉 Varnish,但据我了解,您可以使用 Edge Side Includes 仅缓存页面的某些片段。

显然它可能不适合您的用例,但听起来很有可能。