Исключение RequestTimeout
Исключение RequestTimeout относится к классу HTTP-исключений
Flask и соответствует статус-коду 408. Оно применяется, когда
сервер завершает соединение, так как клиент слишком долго
не отправляет запрос целиком. При возбуждении этого исключения
Flask формирует ответ с описанием ошибки. Первым параметром
можно передать произвольное описание, которое попадёт в тело
ответа.
Синтаксис
from flask import Flask
from werkzeug.exceptions import RequestTimeout
raise RequestTimeout(description)
Пример
Давайте возбудим исключение RequestTimeout внутри
обработчика и посмотрим на результат:
from flask import Flask
from werkzeug.exceptions import RequestTimeout
app = Flask(__name__)
@app.route('/')
def index():
raise RequestTimeout()
Результат выполнения кода для адреса /:
<+html+>
408 Request Timeout
The server closed the connection because the request took too long to complete.
<-html+>
Пример
Давайте передадим собственное описание ошибки:
from flask import Flask
from werkzeug.exceptions import RequestTimeout
app = Flask(__name__)
@app.route('/')
def index():
raise RequestTimeout('Request took too long')
Результат выполнения кода для адреса /:
<+html+>
408 Request Timeout
Request took too long
<-html+>
Пример
Давайте перехватим исключение и вернём собственный ответ:
from flask import Flask
from werkzeug.exceptions import RequestTimeout
app = Flask(__name__)
@app.errorhandler(RequestTimeout)
def handle_timeout(error):
return 'Custom timeout message', 408
@app.route('/')
def index():
raise RequestTimeout()
Результат выполнения кода для адреса /:
<+html+>
Custom timeout message
<-html+>
Смотрите также
-
класс
HTTPException,
который является базовым для всех HTTP-исключений Flask -
атрибут
code,
который хранит статус-код исключения -
атрибут
description,
который хранит текстовое описание ошибки -
метод
get_response,
который формирует объект ответа для исключения