Метод get_response
Метод get_response применяется к экземпляру класса HTTPException
и возвращает объект Response, который будет отправлен клиенту.
Метод принимает необязательный параметр environ - словарь окружения WSGI,
который используется для формирования заголовков ответа.
Если параметр не передан, применяется пустой словарь.
Синтаксис
exception.get_response([environ])
Пример
Давайте создадим исключение NotFound и получим его ответ:
from flask import Flask
from werkzeug.exceptions import NotFound
app = Flask(__name__)
exc = NotFound()
res = exc.get_response()
print(type(res))
print(res.status_code)
print(res.get_data(as_text=True))
Результат выполнения кода:
<class 'werkzeug.wrappers.response.Response'>
404
"<!doctype html>\n<html lang=en>\n<title>404 Not Found</title>\n<h1>Not Found</h1>\n<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>\n"
Пример
Давайте передадим словарь environ и посмотрим,
как это повлияет на заголовки ответа:
from flask import Flask
from werkzeug.exceptions import BadRequest
app = Flask(__name__)
environ = {
'REQUEST_METHOD': 'GET',
'SERVER_NAME': 'localhost',
'SERVER_PORT': '5000',
}
exc = BadRequest()
res = exc.get_response(environ)
print(res.status_code)
print(res.headers.get('Content-Type'))
Результат выполнения кода:
400
"text/html; charset=utf-8"
Пример
Давайте используем метод get_response внутри обработчика ошибки
для возврата стандартного ответа:
from flask import Flask
from werkzeug.exceptions import Forbidden
app = Flask(__name__)
@app.route('/admin')
def admin():
raise Forbidden()
@app.errorhandler(Forbidden)
def handle_forbidden(error):
res = error.get_response()
res.headers['X-Custom-Header'] = 'abcde'
return res
Результат выполнения кода для адреса /admin:
403 Forbidden
Заголовок X-Custom-Header будет содержать значение 'abcde'.
Смотрите также
-
класс
HTTPException,
который является базовым для всех исключений Flask -
метод
get_body,
который возвращает тело ответа исключения -
метод
get_headers,
который возвращает заголовки ответа исключения -
метод
get_description,
который возвращает описание исключения