Атрибут max_content_length
Атрибут max_content_length применяется к объекту запроса
request и задаёт максимально допустимый размер
тела входящего запроса в байтах. Если размер тела
запроса превышает это значение, Flask прерывает
обработку и возвращает ответ с кодом состояния
413 (Request Entity Too Large). Значение по
умолчанию - None, что означает отсутствие
ограничения.
Атрибут удобно задавать через конфигурацию приложения
ключом MAX_CONTENT_LENGTH. Тогда значение
автоматически применяется ко всем входящим запросам.
Атрибут возвращает целое число байт или None.
Синтаксис
request.max_content_length
Пример
Давайте выведем текущее значение атрибута в обработчике:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return str(request.max_content_length)
Результат выполнения кода:
None
Пример
Давайте зададим ограничение через конфигурацию приложения:
from flask import Flask, request
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 1024
@app.route('/')
def index():
return str(request.max_content_length)
Результат выполнения кода:
Пример
Давайте отправим данные, превышающие лимит, и получим ошибку:
from flask import Flask, request
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16
@app.route('/', methods=['POST'])
def index():
return request.get_data(as_text=True)
При отправке тела длиной больше 16 байт Flask вернёт ответ с кодом состояния:
Смотрите также
-
класс
Request,
который представляет входящий HTTP-запрос -
атрибут
content_length,
который возвращает длину тела запроса -
атрибут
content_type,
который возвращает тип содержимого запроса -
метод
get_data,
который читает тело запроса как байты