Атрибут body
Атрибут body применяется к объекту запроса
request и хранит тело HTTP-запроса в виде
байтовой строки (тип bytes). Атрибут доступен
только для чтения и содержит сырые данные, отправленные
клиентом. Для GET-запросов тело обычно пустое, а для
POST и PUT может содержать данные формы, JSON, файлы
или произвольный контент. В отличие от атрибутов
forms и json, которые разбирают тело
запроса, атрибут body возвращает данные в
исходном виде без обработки.
Синтаксис
request.body
Пример
Давайте выведем длину тела запроса для POST-запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/data', method='POST')
def data():
return f"body length: {len(request.body)}"
Результат выполнения кода для тела 'abcde':
"body length: 5"
Пример
Давайте вернём тело запроса в виде строки, декодировав байты в UTF-8:
from bottle import Bottle, request
app = Bottle()
@app.route('/echo', method='POST')
def echo():
return request.body.decode('utf-8')
Результат выполнения кода для тела 'hello':
"hello"
Пример
Давайте проверим, пустое ли тело у GET-запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/check')
def check():
if request.body:
return 'body is not empty'
return 'body is empty'
Результат выполнения кода для GET-запроса:
"body is empty"