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

Атрибут stream

Атрибут stream применяется к объекту запроса request и возвращает поток входных данных. Этот поток представляет собой файлоподобный объект, из которого можно читать тело запроса по частям. Атрибут полезен при обработке больших объёмов данных, когда нет необходимости загружать всё тело запроса в память целиком.

Атрибут не принимает параметров и доступен только для чтения. Поток возвращается в бинарном режиме, поэтому для получения текста его нужно декодировать.

Синтаксис

request.stream

Пример

Давайте прочитаем тело POST-запроса с помощью атрибута stream и вернём его в ответе:

from flask import Flask, request app = Flask(__name__) @app.route('/data', methods=['POST']) def data(): raw = request.stream.read() return raw.decode('utf-8')

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

abcde

Пример

Давайте прочитаем поток по частям и посчитаем количество байт:

from flask import Flask, request app = Flask(__name__) @app.route('/stream', methods=['POST']) def stream(): total = 0 while True: chunk = request.stream.read(4) if not chunk: break total += len(chunk) return str(total)

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

5

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

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