Skip to content

EvaBruh/fastapi-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI Template

FastAPI
Шаблон для создания приложений на основном стеке FastAPI, SQLAlchemy, Alembic


🚀 Запуск

  1. Установка Poetry. При проблемах ищите решения:

    На Windows в PowerShell:

    (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

    На MacOS/Lunix

    curl -sSL https://install.python-poetry.org | python3 -

  2. Добавьте в переменную PATH. После установки есть подсказки как это сделать разными способами.

    Например в Windows C:\Users\<ВашеИмя>\AppData\Roaming\Python\Scripts

    Система -> О программе -> Дополнительные параметры системы -> Дополнительно -> Переменные среды -> Path

  3. В терминале ввести poetry config virtualenvs.in-project true чтобы .venv окружение создавалось внутри проекта

  4. Выполните: poetry install --no-root чтобы установить зависимости, указанные в файле pyproject.toml

  5. В PyCharm откройте File -> Settings -> Project: <ProjectName> -> Python Interpreter

  6. Нажмите Add Interpreter и выберите Poetry Environment

  7. В разделе Existing Environment укажите путь к python.exe в папке .venv проекта

  8. Запустить сервер uvicorn main:app --reload из директории backend

P.S. Если проект новый и файл pyproject.toml отсутствует, выполните: poetry init

📋 Описание шаблона

Данный шаблон построен на основе актуальных практик 2024 года и использует паттерн Repository

В некоторых файлах можно встретить базовый код (/backend/core/config.py к примеру)

🛠 Стек технологий:

  • FastAPI: Фреймворк для создания API.
  • SQLAlchemy: ORM для работы с базой данных.
  • Alembic: Инструмент для управления миграциями.
  • Pydantic: Работа с типами и валидацией данных.
  • Poetry: Управление зависимостями и виртуальными окружениями.
  • Docker: Контейнеризация приложения.
  • Redis: Опционально для кэширования.
  • Ruff: Линтер/Форматтер с настройками в pyproject.toml
  • Black: Форматтер с настройками в pyproject.toml
  • Всё что нужно для работы с PostgreSQL, и aiosqlite (sync/async).
  • Библиотеки для тестирования: pyTest, httpx.
  • Подробнее в pyproject.toml

📂 Структура проекта

Шаблон имеет следующую структуру:

fastapi-template/
├── alembic/                  # Каталог миграций Alembic
│   ├── versions/             # Каталог с файлами миграций
│   ├── env.py                # Основной файл конфигурации Alembic
│   └── script.py.mako        # Шаблон для новых миграций
├── backend/
│   ├── __init__.py
│   ├── main.py               # Точка входа FastAPI
│   ├── api/                  # Каталог с API маршрутами
│   ├── core/                 # Конфигурации и основные утилиты
│   ├── models/               # SQLAlchemy модели
│   ├── repositories/         # Репозитории для работы с БД
│   ├── schemas/              # Pydantic схемы
│   ├── services/             # Бизнес-логика
│   └── tests/                # Тесты
├── frontend/                 # По желанию
├── nginx/                    # Под Nginx конфигурацию
├── .env                      # Переменные окружения
├── pyproject.toml            # Poetry конфигурация


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published