Python — прекрасный язык программирования, имеющий множество применений. Модуль Flask в Python идеально подходит для начинающих и представляет собой очень простое решение для создания RESTful API. Мы рассмотрим его в этой статье.
Flask — очень простой фреймворк для Python, позволяющий создать REST API за считанные минуты. Если вы никогда раньше не использовали Python, я настоятельно рекомендую вам ознакомиться с официальным руководством на официальном сайте Python, чтобы начать знакомство с Python.
Исходный код доступен на моем GitHub
Предпосылки
В вашей системе должен быть установлен Python 3 и выше и Pip. Вам также потребуется IDE, поддерживающая Python. Популярными вариантами являются Microsoft Visual Studio Code или JetBrains PyCharm.
Установка колбы
Откройте терминал/командную строку и выполните следующее, чтобы установить модуль Flask.
pip install Flask
Настройка рабочей среды
Давайте создадим папку с именем project
(вы можете назвать ее как хотите) и откройте ее с помощью вашей любимой IDE. В этом руководстве я буду использовать код Visual Studio (VSCode). См. скриншоты ниже.
Создание папки проекта
Создав и открыв наш рабочий каталог в нашей среде IDE, мы начнем с создания файла с именем app.py
. Вы можете назвать его как хотите. Этот файл будет содержать наш код REST API.
Настройка колбы
Откройте только что созданный файл в вашей среде IDE. Мы начнем с импорта Flask в наш код Python. Для этого введите следующую строку в качестве первой строки файла.
from flask import Flask
Выполнив этот шаг, мы можем продолжить и создать объект Flask, который будет использоваться для всех наших операций, связанных с API.
app = Flask(__name__)
Переменная
__name__
здесь означает специальную переменную в Python, которая указывает на имя текущего модуля. Вам не нужно беспокоиться об этом в данный момент, но помните, что важно передать его в качестве параметра конструктору.
Пишем наш первый API
Теперь, когда мы инициализировали объект Flask, мы можем приступить к написанию нашего первого API. Давайте сначала быстро спланируем, что мы будем делать. А пока предположим, что вам нужен API, который возвращает простой текст May the force be with you!
после того, как вы нажмете URL-адрес в браузере.
Сначала мы определим маршрут этого API. Маршрут API — это, проще говоря, URL-адрес, по которому будет существовать API. Вызов этого URL-адреса из нашего браузера (или любого внешнего интерфейса) должен дать нам желаемый результат. Мы не будем усложнять и назовем этот конкретный маршрут /greetings
.
Если эта часть немного сбивает с толку, давайте рассмотрим пример из реальной жизни. Учитывая URL-адрес
https://www.google.com/maps
, как вы думаете, каким будет маршрут и доменное имя? Итак, маршрут/maps
, а доменное имяhttp://www.google.com
. В конце концов, наш REST API будет размещен на каком-то сервере, у которого будет собственное доменное имя, как это делает здесь Google.
Теперь, когда мы определили наш маршрут и знаем, какие данные возвращать, давайте создадим наш API!
Мы начнем с написания функции, которая будет вызываться, когда мы попадаем в наш API. Назовем эту функцию greetings()
. Эта функция вернет ожидаемые данные, в нашем случае это строка. Код должен выглядеть следующим образом:
def greetings():
return 'May the force be with you!'
Итак, наша функция готова. Как мы будем вызывать эту функцию при запуске нашего API? Flask достигает этого с помощью чего-то, что называется Decorator
в Python. Проще говоря, декоратор — это функция, которая заключает в себя выполнение другой функции.
Хотя для этого урока не важно понимать, как работают декораторы, я настоятельно рекомендую вам ознакомиться с некоторыми материалами о декораторах после этого урока.
Мы можем вызывать декораторы, используя символ @
прямо перед определением функции. Для Flask декоратор, используемый для присоединения функции к данному API:
@app.route('/your/api/route/here')
Написав эту строку над определением нашей функции, мы получим:
@app.route('/greetings')
def greetings():
return 'May the force be with you!'
Используя этот декоратор, мы просим Flask запускать эту функцию всякий раз, когда вызывается маршрут /greetings
. Flask позаботится обо всем остальном за вас, если возвращаемые данные являются допустимым сериализуемым объектом (например, текстом или JSON).
Окончательное содержимое файлов должно быть следующим:
from flask import Flask
app = Flask(__name__)
@app.route('/greetings') def greetings(): return 'May the force be with you!'
Запуск нашего сервера Flask
Когда большая часть нашего кода завершена, теперь мы можем запустить наш сервер Flask. Добавьте следующую строку в конец нашего файла:
if __name__ == 'main':
app.run()
Когда вы запускаете этот файл либо с помощью команды python3 app.py
на консоли, либо с помощью функции «Выполнить» вашей IDE, вы должны получить следующий вывод.
Если вы не видите никаких ошибок, поздравляем, ваш сервер Flask запущен! Откройте http://127.0.0.1:5000/greetings
в любом браузере, чтобы увидеть свой API в действии!
Заключительные примечания
Мы увидели, как просто создавать RESTful API с помощью Python благодаря модулю Flask. В следующих статьях этой серии мы рассмотрим более продвинутые функции, которые мы можем создать с помощью Flask, включая аутентификацию (вход/регистрация), хранение данных и обслуживание статических HTML-файлов.