Представьте, что вы работаете над созданием приложения Flask и вам нужно отправить post
данные JSON в приложение. В этом уроке мы узнаем, как отправлять данные JSON в приложение Flask с помощью запросов.
Но перед этим нам необходимо понять основы Flask, библиотеки запросов и данные JSON.
Чтобы отправить данные JSON в приложение Flask с помощью библиотеки Requests в Python, создайте клиентский скрипт, который определяет URL и данные JSON, и используйте requests.post() для отправки запроса POST в приложение Flask. В приложении Flask обработайте входящий запрос POST, извлеките данные JSON с помощью request.json и верните соответствующий ответ. Вы также можете разрешить запросам GET извлекать данные JSON из приложения Flask, изменив декоратор @app.route() и обработав запрос GET соответствующим образом.
Введение в Flask и данные JSON
Flask — это фреймворк веб-приложений Python, который призван помочь разработчикам создавать легкие веб-приложения. Flask позволяет разрабатывать потрясающие веб-приложения с минимальными требованиями к коду.
Его можно установить с помощью следующего кода.
pip install flask
Давайте рассмотрим пример создания базовой программы Hello Wprls с использованием Flask. Прежде чем перейти к программе, нам нужно понять, что по умолчанию приложение Flask запускается на локальном сервере хоста (http://localhost:5000/).
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
В первой строке мы импортируем модуль Flask из библиотеки.
Далее мы создаем экземпляр для объекта приложения в следующей строке. Экземпляр сохраняется в объекте app
.
Это декоратор app.route
, используемый для объявления конечной точки или URL, в котором необходимо развернуть приложение. URL, используемый в этом коде, является URL по умолчанию – http://localhost:5000/.
Далее мы создаем функцию для вывода сообщения Hello,World!
на веб-страницу.
Мы запускаем эту программу с использованием app.run
метода.
Requests: HTTP для людей
Модуль Requests используется для отправки HTTP-запросов с использованием Python для получения данных ответа HTTP URL.
Эту библиотеку можно установить с помощью следующей команды.
pip install requests
С модулем запросов мы можем получать запросы, используя метод get
, и отправлять запросы, используя метод post
. Мы увидим использование этих методов в демонстрации.
Понимание структуры данных JSON
JSON (JavaScript Object Notation) хранит и передает данные через Интернет. Он напоминает словарь в Python и известен своей легкостью и быстротой.
Вот пример массива JSON.
"name_age":[
{"name":"X", "age":20},
{"name":"Y", "age":18"},
{"name":"Z", "age":22}
]
Отправка данных JSON в приложение Flask
Используя модуль запросов, мы отправим такие данные JSON в приложение Flask.
Создание клиентского скрипта
Сначала мы должны создать файл Python для хранения данных JSON. В этом примере я создал файл Python с именем client.py
, который содержит данные JSON.
import requests
url = 'http://localhost:5000/api/data'
json_data = {
'Name': 'VD',
'Job':'Dev',
}
response = requests.post(url, json=json_data)
if response.status_code == 200:
print('JSON data sent successfully!')
else:
print('Failed to send JSON data:', response.status_code)
Теперь мы импортируем модуль запросов. Затем мы определяем URL, по которому будет развернуто приложение. Далее мы определяем json_data, который имеет две пары ключ-значение — Имя и Работа. Затем мы создаем объект запросов для публикации данных в URL. Для каждого отправленного нами запроса мы получаем код ответа. В случае 200 мы успешно отправили данные в приложение.
Создание приложения Flask
Далее мы создаем еще один файл для приложения Flask. В этом примере мы используем apptest.py
.
from flask import Flask, request
app = Flask(__name__)
@app.route('/api/data', methods=['POST'])
def api_data():
if request.method == 'POST':
data = request.json
print('Received JSON data:', data)
return 'JSON data received successfully!', 200
else:
return 'Method Not Allowed', 405
if __name__ == '__main__':
app.run(debug=True)
В этом файле мы пишем код для развертывания приложения на сервере. В декораторе app.route
мы определяем конечную точку приложения, которая является URL. Разрешенный метод — POST
, который используется для отправки запросов в приложение. В функции api_data
мы проверяем, является ли метод POST, и используем несколько операторов return, чтобы проверить, успешно ли отправлены данные в приложение.
После того, как оба файла будут сохранены, нам нужно выполнить их client.py
в терминале.
Данные успешно отправлены
И мы можем видеть данные в терминале файла apptest.py
, что свидетельствует о том, что данные были успешно отправлены в приложение.
Полученные данные JSON
Давайте проверим, увидим ли мы те же результаты в URL локального хоста – http://localhost:5000/api/data.
Метод не разрешен
Это происходит потому, что в apptest.py
мы разрешаем только метод POST
. Если мы разрешим метод GET
в декораторе app.route, мы также сможем увидеть данные JSON на веб-странице.
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/api/data', methods=['GET', 'POST'])
def api_data():
if request.method == 'POST':
data = request.json
print('Received JSON data:', data)
return 'JSON data received successfully!', 200
elif request.method == 'GET':
json_data = {
'Name': 'VD',
'Job': 'Dev',
}
return jsonify(json_data)
if __name__ == '__main__':
app.run(debug=True)
В декораторе мы добавили метод GET
. В дополнение к этому мы также включили оператор if-else для обработки запросов. Это позволяет нам получать данные из приложения Flask на локальном сервере хоста.
Мы собрали коллекцию интересных руководств по Flask на нашей платформе. Пожалуйста, ознакомьтесь с ними!
Краткое содержание
В этом уроке мы обсудили основы фреймворка Flask, модуль запросов и данные JSON.
После этого мы использовали модуль запросов для успешной отправки данных JSON в приложение Flask. В примере также было показано, как получить данные ответа с помощью двух методов декораторов Flask.
Цель этого руководства — познакомить вас с созданием веб-приложений с использованием фреймворка Flask. С этими основами мы можем сделать гораздо больше, например, развернуть модели ML в Интернете и создать интересные приложения. Счастливого кодирования!