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-файлов.