РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
92 of 643 menu

Атрибут content_length

Атрибут content_length применяется к объекту запроса request и возвращает длину тела HTTP-запроса в байтах. Значение берётся из заголовка Content-Length. Если заголовок отсутствует, атрибут возвращает None.

Атрибут особенно полезен при обработке POST-запросов, когда нужно заранее узнать размер отправленных данных, например, перед чтением потока или валидацией загрузки.

Синтаксис

request.content_length

Пример

Давайте выведем длину тела POST-запроса в ответе:

from flask import Flask, request app = Flask(__name__) @app.route('/submit', methods=['POST']) def submit(): return f"Length: {request.content_length}"

Результат выполнения кода при отправке тела 'hello':

Length: 5

Пример

Давайте проверим, что атрибут возвращает None для GET-запроса без тела:

from flask import Flask, request app = Flask(__name__) @app.route('/info') def info(): if request.content_length is None: return "no body" return str(request.content_length)

Результат выполнения кода для GET-запроса:

"no body"

Пример

Давайте используем атрибут для ограничения размера загружаемых данных:

from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload(): length = request.content_length if length is not None and length > 100: return "too large", 413 return f"accepted: {length} bytes"

Результат выполнения кода для тела размером 50 байт:

accepted: 50 bytes

Смотрите также

  • класс Request,
    который представляет HTTP-запрос
  • атрибут max_content_length,
    который задаёт максимальный размер тела запроса
  • атрибут content_type,
    который возвращает MIME-тип тела запроса
  • метод get_data,
    который читает тело запроса как байты
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить