3

如何在对 django-piston 调用的响应中包含 HTTP 标头,例如 Cache-Control 或 Last-Modified?

4

2 回答 2

2

您可以按照 Django 文档中在 urlconf 指南中指定每个视图缓存中urls.py的过程将其包装起来。在我的情况下,我将我的活塞 API 放在一个单独的模块中,并且更喜欢使用 Varnish 而不是内置的 Django 缓存框架,所以我在我的(我的主要包括)中使用了这种方法来设置我想要的缓存控制标头:api/urls.pyurls.py

from django.views.decorators.cache import cache_control

cached_resource = cache_control(public=True, maxage=30, s_maxage=300)

urlpatterns = patterns('',
   url(r'^myresource/$', cached_resource(Resource(MyHandler))),
)
于 2010-07-06T14:39:11.410 回答
0

不确定 django-piston,但在 django 中你可以去:

from django.http import HttpResponse
response = HttpResponse('My content')
response['MyHttpHeader'] = 'MyHeaderValue'

因此,请在您可以访问响应的地方执行此操作。如果您使用的是 3rd 方应用程序,中间件通常是执行此操作的理想场所。您的中间件可能类似于:

def process_response(self, request, response):
    response['MyHttpHeader'] = 'MyHeaderValue'
    return response
于 2010-03-31T22:48:38.463 回答