Исключение TooManyRequests
Исключение TooManyRequests наследуется от класса HTTPException
и соответствует статус-коду 429. Оно применяется, когда клиент
отправил слишком много запросов за определённый промежуток времени.
Первым параметром передаётся описание ошибки, вторым - объект ответа,
третьим - дополнительные заголовки. Если параметры не переданы,
используются значения по умолчанию.
Синтаксис
from werkzeug.exceptions import TooManyRequests
TooManyRequests(description=None, response=None)
Пример
Давайте вызовем исключение TooManyRequests внутри обработчика:
from flask import Flask
from werkzeug.exceptions import TooManyRequests
app = Flask(__name__)
@app.route('/')
def index():
raise TooManyRequests('too many requests')
Результат выполнения кода для адреса /:
429 Too Many Requests
Пример
Давайте обработаем исключение TooManyRequests через
специальный обработчик ошибок:
from flask import Flask, jsonify
from werkzeug.exceptions import TooManyRequests
app = Flask(__name__)
@app.errorhandler(TooManyRequests)
def handle_too_many_requests(error):
res = {
'error': error.name,
'description': error.description
}
return jsonify(res), 429
@app.route('/')
def index():
raise TooManyRequests('too many requests')
Результат выполнения кода для адреса /:
{
"description": "too many requests",
"error": "429 Too Many Requests"
}
Смотрите также
-
класс
HTTPException,
который является базовым для всех HTTP-исключений -
атрибут
code,
который хранит статус-код исключения -
атрибут
description,
который хранит описание ошибки -
исключение
RequestTimeout,
которое сигналит об истечении времени ожидания запроса