Атрибут data
Атрибут data применяется к объекту запроса
request и возвращает тело входящего запроса
в виде байтовой строки. Данные читаются из потока
stream и кэшируются, поэтому повторное
обращение к атрибуту не приводит к повторному
чтению. Если тело запроса пустое, возвращается
пустая байтовая строка b''. Атрибут удобен,
когда нужно получить тело запроса как есть, без
разбора на форму или JSON.
Синтаксис
request.data
Пример
Давайте выведем сырые данные POST-запроса:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['POST'])
def data():
return request.data
Результат выполнения кода для тела 'abcde':
b'abcde'
Пример
Давайте проверим, что тело запроса пустое, и вернём сообщение об этом:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['POST'])
def data():
if not request.data:
return 'empty'
return request.data
Результат выполнения кода для пустого тела:
empty
Пример
Давайте декодируем байтовую строку в текст с
помощью метода decode:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['POST'])
def data():
res = request.data.decode('utf-8')
return res
Результат выполнения кода для тела 'hello':
hello