Метод get_stream
Метод get_stream применяется к объекту запроса request и возвращает поток данных тела запроса в виде файлового объекта. Первым необязательным параметром передаётся cache - флаг, указывающий, нужно ли кэшировать поток. Вторым необязательным параметром передаётся limit - максимальное количество байт для чтения. Метод удобен, когда тело запроса большое и его не нужно загружать в память целиком.
Синтаксис
request.get_stream(cache=True, limit=None)
Пример
Давайте получим поток данных из POST-запроса и прочитаем его содержимое:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
stream = request.get_stream()
res = stream.read()
return res
Результат выполнения кода для тела запроса 'abcde':
abcde
Пример
Давайте ограничим количество читаемых байт с помощью параметра limit:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
stream = request.get_stream(limit=5)
res = stream.read()
return res
Результат выполнения кода для тела запроса 'abcdefghij':
abcde
Пример
Давайте отключим кэширование потока с помощью параметра cache:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload():
stream = request.get_stream(cache=False)
res = stream.read()
return res
Результат выполнения кода для тела запроса 'hello':
hello