Базовое приложение на FastAPI с SQLAlchemy и alembic
Если вы хотите использовать FastAPI для создания веб-приложений, то в этой статье мы расскажем вам, как создать базовое приложение с использованием SQLAlchemy и alembic.
Шаг 1: Установка FastAPI, SQLAlchemy и alembic
Для начала установите FastAPI, SQLAlchemy и alembic при помощи pip:
pip install fastapi
pip install sqlalchemy
pip install alembic
Шаг 2: Создание каркаса проекта
Создайте новую директорию для вашего проекта и создайте в ней следующие файлы:
main.py
– основной файл приложения FastAPIdatabase.py
– файл для работы с базой данных SQLAlchemyalembic.ini
иalembic
– файлы для миграций базы данных с помощью alembic
Шаг 3: Настройка базы данных и миграции
В database.py
определите модели данных, используя SQLAlchemy. Затем создайте миграции для базы данных при помощи alembic:
python alembic init alembic
python alembic revision --autogenerate -m "initial"
python alembic upgrade head
Шаг 4: Создание API с помощью FastAPI
В main.py
определите API с помощью FastAPI, используя модели данных из database.py
:
from fastapi import FastAPI
from .database import Base, engine, Session
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello World"}
Шаг 5: Запуск приложения
Наконец, запустите приложение FastAPI при помощи uvicorn:
uvicorn main:app --reload
Теперь ваше базовое приложение на FastAPI с SQLAlchemy и alembic готово к использованию!
Привет, спасибо за видео!
Такой вопрос: Как правильно рассчитать poll_size для engine? И max_connections для postgres?
А почему бы не использовать параметр name в UniqueConstraint("foo", "bar",name="foo_bar_uc") и тогда сразу создастся конструкция с нужным именем? PS Хотя то решение которое вы прописали более универсальное и позволяет более тонко настроить БД
спасибо за материал !
Вы используете copilot в своей ide ?
не получается создать конфиг с подмоделью у которой в наименовании api – это глюк pydantic-settings. помогает только переименование.
Привет, Сурен
Знаком с тобой больше года почти!)
Благодаря твоим видео уловил принципы Django и далее нашел самостоятельно пути развития и устроился Джуном)
Сейчас уж больно понравилось расширение для пуша в гит с одного файла, но с выбором изменений, не подскажешь есть ли такое же расширение для vs code?
Сурен, очень хотелось бы увидеть от тебя что-то подобное, но с реализацией архитектурного паттерна DDD, например.
Было бы еще лучьше, если еще по SQL-alchemy и pydantic дали бы бозовые понятия
Вот этот видеоурок больше похож на основу frameworka Fast api чем предыдущие. Спасибо за труд и уделения времени
Огромное спасибо, круто! Всё понятно, ёмко и по делу
Спасибо за видео. А как называется эта архитектура? Вообще какая архитектура лучше для fastapi? Что насчет clean архитектуры?
Отличное видео! Спасибо, Сурен!
Круто❤
сразу бросается в глаза что нет типовых «ээ» «аа», складная речь, респект
Сурен, спасибо большое за труды!
1:22:43 – Сурен, а как же дзен Python? "Явное лучше чем не явное"😊
Спасибо за видео, оч полезно. Ты сказал на 46:17 про монорепозиторий, и .env для каждого микросервиса в своем каталоге. А если 2 микросервиса и больше, как считаешь, какая бест практика по установке пакетов для каждого микросервиса? Переходить на pip requir*.txt для каждого микросервиса или в pyproject делать группы или extra для каждого микросервиса или что-то иное?
Очень смущает использование глобальной переменной settings
Теперь я усваиваю на 200% лучше. Синхронизация произошла!!! Такая подача – спокойный обычный разговор – the best! Спасибо, что учитываешь пожелания и рекомендации подписчиков.
Очень нравится контент твоего канала. Спасибо!
Отлично, сжато, без воды и все самое главное. Еще бы добавить сюда асинхронные тесты. Ну и можно линтеры (ну и black -> ruff)