Изменить заголовки в Pylons, используя Middleware - PullRequest
1 голос
/ 05 мая 2010

Я пытаюсь изменить заголовок, используя Middleware в Pylons, чтобы сделать мое приложение RESTful, в основном, если пользователь запросит "application/json" через GET, что он и получит.

У меня вопрос: переменная headers в основном длинный список. Выглядит примерно так:

[('Content-Type', 'text/html; charset=utf-8'), ('Pragma', 'no-cache'), ('Cache-Control', 'no-cache'), ('Content-Length','20'), ('Content-Encoding', 'gzip')]

Теперь я просто хочу изменить значение на основе запроса - но фиксированы ли эти позиции? 'Content-Type' всегда будет позицией headers[0][0]?

С наилучшими пожеланиями,

Anders

1 Ответ

1 голос
/ 05 мая 2010

Попробуйте это

<code>
from webob import Request, Response
from my_wsgi_application import App
class MyMiddleware(object):
    def <strong>init</strong>(self, app):
        self.app = app
    def <strong>call</strong>(self, environ, start_response):
        req = Request(environ)<br>
        ...
        rsp = req.get_response(app)
        rsp.headers['Content-type'] = 'application/json'
        return rsp(environ, start_response)

Или просто запрос или ответ .headers ['Content-type'] = 'application / json' в вашем контроллере

См. http://pythonpaste.org/webob/reference.html#headers

...