Разработчики, работающие с Flask, часто сталкиваются со следующей задачей: необходимо обработать данные, отправленные на сервер через HTTP-запрос. Однако, при попытке получить доступ к этим данным через request.data
, они обнаруживают, что это поле пустое.
from flask import request @app.route('/', methods=['GET', 'POST']) def parse_request(): data = request.data # data is empty # need posted data here
Так происходит из-за того, что request.data
возвращает пустую строку, если данные не были отправлены как форма или не были представлены в виде JSON.
Чтобы получить доступ к данным, отправленным через POST-запрос, можно использовать request.get_json()
для JSON-данных или request.form
для данных формы.
В случае с JSON-данными код может выглядеть следующим образом:
from flask import request @app.route('/', methods=['POST']) def parse_request(): data = request.get_json() # data is dictionary with json data
Или, в случае с данными формы:
from flask import request @app.route('/', methods=['POST']) def parse_request(): data = request.form # data is dictionary with form data
Таким образом, с помощью request.get_json()
и request.form
можно получить доступ к данным, отправленным на сервер через HTTP-запрос, в формате JSON или в виде формы соответственно.
Добавить комментарий