Исключение RequestEntityTooLarge
Исключение RequestEntityTooLarge вызывается Flask,
когда размер тела входящего запроса превышает значение
MAX_CONTENT_LENGTH, заданное в конфигурации приложения.
Оно соответствует HTTP-статусу 413. Это исключение помогает
защитить приложение от слишком больших загрузок и переполнения
памяти. Параметров у класса нет, но при желании можно передать
описание через аргумент description.
Синтаксис
from werkzeug.exceptions import RequestEntityTooLarge
RequestEntityTooLarge(description=None)
Пример
Давайте зададим лимит размера запроса и обработаем
исключение RequestEntityTooLarge:
from flask import Flask, request
from werkzeug.exceptions import RequestEntityTooLarge
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16
@app.errorhandler(RequestEntityTooLarge)
def too_large(e):
return 'request entity too large', 413
@app.route('/', methods=['POST'])
def index():
return request.data.decode()
При отправке тела запроса, превышающего 16 байт, мы получим следующий ответ:
request entity too large
Пример
Давайте получим описание исключения с помощью атрибута
description и вернём его в ответе:
from flask import Flask, request
from werkzeug.exceptions import RequestEntityTooLarge
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16
@app.errorhandler(RequestEntityTooLarge)
def too_large(e):
return e.description, 413
@app.route('/', methods=['POST'])
def index():
return request.data.decode()
Результат выполнения кода для слишком большого тела запроса:
The data value transmitted exceeds the capacity limit.
Смотрите также
-
класс
Exception,
который является базовым для всех исключений Flask -
атрибут
description,
который содержит текстовое описание исключения -
атрибут
code,
который содержит HTTP-код исключения -
исключение
RequestURITooLarge,
которое возникает при слишком длинном URL