Введение
FastAPI быстро приобрёл популярность как высокопроизводительный, легко используемый веб-фреймворк для создания API с Python. Когда он сочетается с relational database, FastAPI может использоваться для создания мощных, масштабируемых приложений. Этот指南 вам покажет, как установить FastAPI приложение с relational database на Ubuntu 24.04 машине. Мы покроем все, от установки необходимых инструментов до настройки базы данных и создания API конечных точек.
Использование FastAPI с PostgreSQL базой данных
- Установка Python окружения
- Создание и активация виртуального окружения
- Установка и настройка PostgreSQL
- Создание приложения FastAPI
- Установка необходимых библиотек
- Запуск приложения Python
- Тестирование endpoint приложения FastAPI
Предупреждения
Перед выполнением шагов из этого руководства вам нужно:
-
Сервер с Ubuntu, неRoot пользователь с правами sudo и активной firewall. Чтобы получить инструкции по установке, выберите из этого списка вашу дистрибуцию и следуйте指南 настройки начального сервера. Убедитесь, что вы работаете с поддерживаемой версией Ubuntu.
-
Знание командной строки Linux. Для знакомства или повторения командной строки вы можете посетить это руководство по основам командной строки Linux.
-
Запустите
sudo apt-get update
в терминале Ubuntu, чтобы убедиться, что ваша система имеет последние версии и обновления безопасности для программного обеспечения, доступного из настроенных на вашей системе репозиториев.
Данные инструкции являются действительными для последних версий Ubuntu: Ubuntu 24.04, Ubuntu 22.04 и Ubuntu 20.04. Если вы используете версию Ubuntu <= 18.04, мы рекомендуем вам обновить вашу версию Ubuntu до более последней версии, так как Ubuntu больше не обеспечивает поддержку этих версий. Эта коллекция руководств поможет вам обновить вашу версию Ubuntu.
Шаг 1 – Настройка Python среды
В Ubuntu 24.04 Python 3 выставлен по умолчанию. Откройте терминал и выполните следующую команду, чтобы убедиться в установке Python 3:
Если Python 3 уже установлен на вашем компьютере, эта команда вернёт текущую версию установки Python 3. Если он не установлен, вы можете выполнить следующую команду и установить Python 3:
次に、您需要在系统中安装pip
和dev
包安装器。在终端中运行以下命令:
В этом руководстве мы будем использовать PostgreSQL в качестве нашей реляционной базы данных. Чтобы взаимодействовать с базой данных PostgreSQL, вам нужно установить libpq-dev
с помощью следующего запроса:
Шаг 2 – Создание и активация виртуального окружения
Если вы используете версию Ubuntu < 24.04, вам не требуется создавать виртуальное окружение. Вы можете перейти к следующему шагу.
Следующим шагом является создание виртуального окружения в вашем установленном Ubuntu, чтобы изолировать Python-пакеты от системного окружения. Чтобы это сделать, перейдите в ваш рабочий каталог и выполните следующий набор команд:
Эта команда создаст новый каталог с именем fastapi-env
, в котором будет собственный набор Python-пакетов, изолированных от других проектов.
Чтобы убедиться, что все пакеты, которые вы будете устанавливать с этого момента, будут установлены в этом изолированном окружении, вам нужно активировать его, выполнив:
После выполнения вы увидите, что префикс терминального лога будет идти с именем вашего виртуального окружения, например:
Output(fastapi-env) ubuntu@user:
Шаг 3 – Установка и настройка PostgreSQL
Следующий шаг – установка PostgreSQL (или любой другой связанной базы данных, которую вы выбрали).
Теперь пришло время запустить и активировать службу PostgreSQL в вашей виртуальной среде.
Вы можете проверить статус службы PostgreSQL, выполнив sudo systemctl status postgresql
. После активирования службы, она автоматически запускается при загрузке системы.
Чтобы установить и использовать PostgreSQL с FastAPI, вам нужно установить несколько вещей:
asyncpg
: Это асинхронный драйвер PostgreSQL, который позволяет FastAPI взаимодействовать с базой данных PostgreSQL.SQLAlchemy
: Это инструмент ORM, который помогает вам управлять схемами базы данных и запросами, написанными как Python-код, а не raw SQL.databases
: Это библиотека баз данных для асинхронных операций, требуемыхSQLAlchemy
для работы асинхронно с FastAPI.
Чтобы установить эти, выполните следующий объединенныйCOMMAND:
Далее создайте базу данных Postgres с пользователем с необходимыми привилегиями.
Шаг 4 – Создание примера Python-приложения
Вам нужно выполняемое приложение Python, которое получает доступ к вашей базе данных через FastAPI. Если у вас еще нет работающего приложения Python, вы можете быстро создать его, следуя этим шагам:
Создайте новый Python-файл с именем postgres_db.py
в вашем проекте.
В текстовом редакторе вы напишете логику для создания соединения с базой данных и создания таблицы внутри базы. В этом примере мы создаем соединение с PostgreSQL-базой данных с использованием пакета databases
и определяем структуру таблицы books
с использованием SQLAlchemy
.
Сохраните и закройте файл.
Далее создайте main.py
в том же каталоге.
В этом файле напишите основную логику вашего приложения:
Этот код использует FastAPI для записи новых записей книг в PostgreSQL-базу данных и для извлечения коллекции книг из нее.
Шаг 5 – Установите необходимые библиотеки
В вашем Python-приложении вы используете различные библиотеки и пакеты. перед запуском приложения убедитесь, что вы установили необходимые библиотеки.
Шаг 6 – Запустите Python-приложение
Теперь пришло время запустить приложение, которое вы создали.
uvicorn
является асинхронным серверным API-интерфейсом (ASGI), используемым для обслуживания приложения FastAPI. Использование uvicorn
является предпочитаемым способом запуска приложения FastAPI, поскольку FastAPI сам является асинхронным веб-фреймворком.
Если вышеуказанный приказ выполняется без встречи с ошибкой, то вы увидите выходные данные, схожие следующим образом:
OutputINFO: Will watch for changes in these directories: ['/path/to/your/project']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [XXXX] using StatReload
INFO: Started server process [YYYY]
INFO: Waiting for application startup.
INFO: Application startup complete.
В веб-браузере перейдите к http://127.0.0.1:8000
, чтобы увидеть выходные данные запроса.
Шаг 7 [OPTIONAL] – Тестирование Endpoints
Вы можете тестировать endpoint из вашего main.py
(т.е. POST
и GET
), отправляя HTTP-запросы на сервер, который запущен на http://127.0.0.1:8000
.
Также вы можете выполнить GET
-запрос к тому же серверу, чтобы получить список книг, находящихся в вашей Postgres-базе данных.
Заключение
В этом руководстве вы прошли процесс установки простой FastAPI-приложения, взаимодействующего с PostgreSQL-базой данных. Эти шаги также полезны для AI-приложений, особенно когда вам нужно создать веб-API для взаимодействия с вашими AI-моделями или управления данными, связанными с вашими AI-процессами. С этим фундаментом вы можете теперь строить и расширять ваши FastAPI-проекты.
Оставайтесь с нами для более полных статей о том, как работать с FastAPI.
Source:
https://www.digitalocean.com/community/tutorials/use-fastapi-with-relationaldb-ubuntu