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

Атрибут content_length

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

Атрибут полезен, когда нужно проверить размер отправленных данных до их чтения: например, чтобы отклонить слишком большой запрос или зарезервировать буфер нужного размера.

Синтаксис

request.content_length

Пример

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

from bottle import Bottle, request app = Bottle() @app.route('/submit', method='POST') def submit(): return f"length: {request.content_length}"

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

"length: 5"

Пример

Давайте проверим, передан ли заголовок Content-Length, и отклоним слишком большие запросы:

from bottle import Bottle, request, abort app = Bottle() @app.route('/upload', method='POST') def upload(): if request.content_length is None: abort(411, 'Length Required') if request.content_length > 1024: abort(413, 'Payload Too Large') return f"accepted: {request.content_length}"

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

413 Payload Too Large

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

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