使用django-piston,如何在响应中写出HTTP头?

时间:2010-03-29 19:21:44

标签: django django-piston

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

2 个答案:

答案 0 :(得分:2)

您可以按照Django文档中specifying per view cache in urlconf指南中的步骤将其包装在urls.py中。在我的情况下,我在一个单独的模块中使用了我的Piston API,并且更喜欢使用Varnish而不是内置的Django缓存框架,因此我在api/urls.py(我的主要urls.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))),
)

答案 1 :(得分:0)

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

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

所以,在那里你可以访问响应。如果您使用第三方应用程序,中间件通常是完美的地方。您的中间件看起来像:

def process_response(self, request, response):
    response['MyHttpHeader'] = 'MyHeaderValue'
    return response