• Официальный сайт SDK
  • Сайт с примерами кода

Формирование ответа

Формирование ответа на запрос в экземпляре класса обработчика происходит с помощью его атрибута response. Он инициализируется приложением пустым объектом типа Response.

В свою очередь атрибут out этого объекта является файловым интерфейсом, позволяющим формировать тело ответа.

CmNsYXNzIE15SGFuZGxlcih3ZWJhcHAuUmVxdWVzdEhhbmRsZXIpOgpkZWYgZ2V0KHNlbGYpOgpzZWxmLnJlc3BvbnNlLm91dC53cml0ZSgmcXVvdDsmbHQ7aHRtbCZndDsmbHQ7Ym9keSZndDsmbHQ7cCZndDvQn9GA0LjQstC10YIhJmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7JnF1b3Q7KQo==

Объект out помещает весь вывод в память и затем по завершении работы обработчика отправляет конечный результат пользователю. Фреймворк webapp не поддерживает потоковый вывод данных клиенту.

Метод clear() удаляет все содержимое выходного буфера, оставляя его пустым.

Если данные, отправляемые в выходной поток, являются юникодными или объект response содержит заголовок Content-Type оканчивающийся на ; charset=utf-8, фреймворк webapp осуществит вывод в кодировке UTF-8. По умолчанию, заголовок Content-Type имеет значение text/html; charset=utf-8, которое подразумевает описанное выше поведение фреймворка. Если заголовок ответа Content-Type меняется на другой параметр charset, фреймворк webapp осуществляет отправку ответа как байтовую строку.

Примечание: Несмотря на то, что класс Request является наследником соответствующего класса библиотеки WebOb, класс Response таковым не является. Однако, он содержит несколько методов, которые имеют похожие в библиотеке WebOb эквиваленты. (Последующие версии интерфейса могут использовать класс WebOb напрямую.)