如何在django中设置http响应的远期到期日期?

时间:2014-01-06 22:11:08

标签: django cache-control

如何在django中为我的http响应设置现在+ 1年到期? 我可以使用render()快捷方式吗?

2 个答案:

答案 0 :(得分:2)

您可以使用装饰器执行此操作,请参阅有关使用per-view cache的相关文档。

答案 1 :(得分:1)

另一种替代方法是使用patch_response_headers(response, cache_timeout=None)中的django.utils.cache。只需根据指定的超时时间(以秒为单位)在Expires对象上设置Cache-Controlresponse HTTP标头即可。

例如,在您的视图代码中,可以在将其返回之前将其应用于HttpResponse对象:

from django.utils.cache import patch_response_headers

# Add Expires and Cache-Control headers to cache in browser for 5 minutes
patch_response_headers(response, cache_timeout=300)

return response

如果仅希望浏览器将响应缓存特定的时间量,而服务器上不进行缓存,则这可能是一个更好的解决方案。

有关更多详细信息,请参见Django文档: https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.cache.patch_response_headers