如何在 Django 中集成 304?

发布于 2024-08-22 04:33:54 字数 96 浏览 8 评论 0原文

当用户请求具有相同数据的相同页面时...我希望 Django 返回 304,这样浏览器就不必重新加载页面。

我对此很陌生。这怎么能做到呢?

谢谢。

When a user requests the same page, with the same data...I'd like Django to return a 304, so that the browser doesn't have to load the page all over again.

I'm new to this. How can this be done?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

迷爱 2024-08-29 04:33:55

Django 文档中有详细的描述:条件视图处理

工具特别有用:

  1. @last_modified@etag 视图装饰器。您为他们提供一个函数来计算请求的值,其他一切都会自动完成。
  2. django.middleware.http.ConditionalGetMiddleware - 它生成所需的 ETag 并在缓存命中时返回 304,但这仍然需要服务器时间来生成完整的 HTML,并且仅节省网络时间。对于单行配置更改来说仍然非常好。

There's extensive description in Django documentation: Conditional view processing

Following tools are particularly useful:

  1. @last_modified and @etag view decorators. You supply them with a function to compute the value from request and everything else is done automatically.
  2. django.middleware.http.ConditionalGetMiddleware -- it generates required ETag and returns 304 if there's a cache hit, but this still takes server time to generate full HTML and only network time is saved. Still very good for one-line configuration change.
这样的小城市 2024-08-29 04:33:55

您可以查看 Django 的 缓存系统,或者您是否可以轻松检查是否用户请求相同的数据,您可以返回 HttpResponseNotModified() - 这将返回 304。查看文档 此处

You could look into Django's caching system, or if you can easily check if the user is requesting the same data, you can return a HttpResponseNotModified() - this returns a 304. Check out the docs here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文