Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как выполнять FastAPI и Postgres вместе в среде GitHub Codespaces . Пространства кода — это облачная среда разработки, которую можно использовать для создания настраиваемых и повторяемых сред разработки.
Пример репозитория можно открыть в интегрированной среде разработки (IDE), например Visual Studio Code с расширением codespaces GitHub Codespaces.
Кроме того, можно клонировать пример репозитория локально. При открытии проекта в Visual Studio Code можно использовать контейнеры разработки для его запуска с помощью контейнеров Dev Containers. Для Dev Containers требуется, чтобы Docker Desktop был установлен локально. Если Docker не установлен, проект можно запустить с помощью GitHub Codespaces в качестве среды разработки.
При использовании GitHub Codespaces вам бесплатно предоставляется фиксированное количество ядер-часов в месяц. Для выполнения этого руководства требуется менее одного основного часа. Дополнительные сведения см. в разделе о выставлении счетов для GitHub Codespaces.
Вы также можете использовать эту настройку в качестве отправной точки и изменить пример для запуска других веб-платформ Python, таких как Django или Flask.
Запуск среды разработки в Codespaces
В этом руководстве описано, как создать и работать с GitHub Codespaces.
Перейдите к репозиторию примера приложения https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace.
В примере репозитория есть все конфигурации, необходимые для создания среды с приложением FastAPI с помощью базы данных Postgres. Вы можете создать аналогичный проект, выполнив действия, описанные в разделе "Настройка проекта Python для GitHub Codespaces".
Выберите вкладку Code,Codespaces и + создайте новое пространство кода.
Когда контейнер завершит сборку, убедитесь, что в левом нижнем углу браузера отображаются пространства кода и просмотрите пример репозитория.
Файлы конфигурации ключа пространства кода : devcontainer.json, Dockerfile и docker-compose.yml. Дополнительные сведения см. в обзоре GitHub Codespaces.
Подсказка
Вы также можете запустить кодовое пространство в Visual Studio Code. Выберите Codespaces в левом нижнем углу браузера или (
Ctrl+Shift+P/Ctrl+Command+P) и введите "Codespaces". Затем выберите "Открыть" в VS Code. Кроме того, если остановить пространство кода и вернуться к репозиторию и снова открыть его в GitHub Codespaces, вы можете открыть его в VS Code или браузере.Note
Если PostgreSQL не удается запустить (сбой контейнера), это может быть связано с несовместимостью между PostgreSQL 18+ и существующим томом каталога данных. Измените
.devcontainer/docker-compose.yamlи заменитеpostgres:latestнаpostgres:17, затем пересоберите контейнер. PostgreSQL 18 изменил структуру каталога данных, из-за чего монтирование тома в/var/lib/postgresql/dataстало несовместимым с предыдущими версиями.Выберите файл .env.devcontainer и создайте копию с именем ENV с тем же содержимым.
Env-файл содержит переменные среды, которые код использует для подключения к базе данных.
Если окно терминала еще не открыто, откройте его, открыв палитру команд (
Ctrl+Shift+P/Ctrl+Command+P), введя "Терминал: создать терминал" и выбрав его для создания нового терминала.Перейдите на вкладку "ПОРТЫ" в окне терминала, чтобы убедиться, что PostgreSQL работает на порту 5432.
В окне терминала запустите приложение FastAPI.
uvicorn main:app --reloadВыберите уведомление "Открыть в браузере".
Если вы не видите или не пропустили уведомление, перейдите к ПОРТАм и найдите локальный адрес для порта 8000. Используйте указанный там URL-адрес.
Добавьте /docs в конец URL-адреса предварительной версии, чтобы просмотреть пользовательский интерфейс Swagger, который можно использовать для тестирования методов API.
Методы API создаются из интерфейса OpenAPI, который FastAPI создает из кода.
На странице Swagger выполните метод POST, чтобы добавить ресторан.
Расширьте метод POST.
Выберите Попробовать.
Заполните текст запроса.
{ "name": "Restaurant 1", "address": "Restaurant 1 address" }Нажмите кнопку "Выполнить" , чтобы зафиксировать изменение.
Подключение к базе данных и просмотр данных
Вернитесь к GitHub Codespace для проекта, выберите расширение SQLTools и выберите локальную базу данных для подключения.
Расширение SQLTools устанавливается при создании контейнера. Если расширение SQLTools не отображается на панели действий, закройте пространство кода и снова откройте его.
Разверните узел локальной базы данных , пока не найдете таблицу ресторанов , щелкните правой кнопкой мыши и выберите "Показать записи таблиц".
Вы увидите добавленный ресторан.
Очистка
Чтобы остановить использование пространства кода, закройте браузер. (Или закройте VS Code, если вы открыли его таким образом.)
Если вы планируете использовать пространство кода еще раз, его можно сохранить. Плата за использование ЦП начисляется только за запущенные кодыспейсы. Остановленное пространство кода несет только затраты на хранение.
Если вы хотите удалить пространство кода, перейдите на https://github.com/codespaces для управления вашими пространствами кода.