Метод apply
Метод apply применяется к объекту ответа
HTTPResponse и переносит все его данные
(статус, заголовки, cookies и тело) в переданный
объект ответа WSGI. Первым параметром передаётся
словарь окружения WSGI environ, а вторым -
объект ответа response, который нужно
заполнить. Метод используется внутри Bottle для
передачи подготовленного ответа на уровень WSGI.
Синтаксис
response.apply(environ, response)
Пример
Давайте создадим объект ответа, заполним его и применим к объекту ответа WSGI:
from bottle import Bottle, HTTPResponse
app = Bottle()
@app.route('/')
def index():
res = HTTPResponse(body='hello')
res.set_header('X-Test', 'abcde')
res.status = 200
wsgi_response = type('Response', (), {})()
wsgi_response.status = None
wsgi_response.headers = []
wsgi_response.body = None
res.apply({}, wsgi_response)
return wsgi_response.body
Результат выполнения кода:
"hello"
Пример
Давайте посмотрим, какие заголовки и статус
попадут в WSGI-ответ после вызова apply:
from bottle import Bottle, HTTPResponse
app = Bottle()
@app.route('/')
def index():
res = HTTPResponse(body='article')
res.status = 404
res.set_header('Content-Type', 'text/plain')
wsgi_response = type('Response', (), {})()
wsgi_response.status = None
wsgi_response.headers = []
wsgi_response.body = None
res.apply({}, wsgi_response)
return str(wsgi_response.status)
Результат выполнения кода:
"404 Not Found"
Смотрите также
-
класс
Response,
который представляет объект ответа -
класс
HTTPResponse,
который хранит статус, заголовки и тело ответа -
метод
set_header,
который устанавливает заголовок ответа -
атрибут
status,
который хранит статус ответа