Используя django-поршень, как я могу записать HTTP-заголовки в ответе? - PullRequest
3 голосов
/ 29 марта 2010

Как включить HTTP-заголовок, такой как Cache-Control или Last-Modified, в ответ на вызов django -алиста?

Ответы [ 2 ]

2 голосов
/ 06 июля 2010

Вы можете обернуть его в urls.py, следуя процедуре в , указывающей на кеш представления в руководстве urlconf в документации Django. В моем случае у меня был 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))),
)
0 голосов
/ 01 апреля 2010

Не уверен насчет django -алиста, но в django вы можете просто перейти:

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

Итак, сделайте это, чтобы получить доступ к ответу.Промежуточное ПО часто является идеальным местом для этого, если вы используете стороннее приложение.Ваше промежуточное ПО может выглядеть примерно так:

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