Skip to content
This repository was archived by the owner on Jul 9, 2023. It is now read-only.
/ xi.with-mongo Public archive
generated from niqzart/python-template

Start for fastapi + mongo project, but it was decided to not use mongo for now due to lack of good ODMs

Notifications You must be signed in to change notification settings

xi-effect/xi.with-mongo

Repository files navigation

Python Template

Basics

Stack

  • Python
  • FastAPI
  • MongoDB (via ODMantic)
  • RabbitMQ (soon)
  • Poetry
  • Linters (flake8, wemake-style-guide, mypy)
  • Formatters (black, autoflake)
  • Pre-commit
  • Pytest

Версии можно найти в pyproject.toml

Install

pip install poetry==1.5.1
poetry install
pre-commit install

Run

Перед запуском нужно поднять базу данных, если ещё не поднята, например, через docker-compose:

docker-compose up -d

Запуск бекенда локально:

uvicorn app.main:app --reload

Запуск внутри докера:

docker-compose --profile app up -d

Docker Compose

Контейнеры

  • mongo: локальная база данных для тестов и проверок, сбрасывается при рестарте
  • mongo-express: админ-панель базы данных, работает на http://localhost:8081
  • api: докеризированное приложение основного api сервиса, сделано для полных проверок и работает только с --profile app

Команды

# запустить все вспомогательные сервисы для локальной разработки
docker-compose up -d
# выключить обратно
docker-compose down

# тоже самое, но вместе с докеризированным приложением
docker-compose --profile app up -d
docker-compose --profile app down

# смотреть логи в реальном времени
docker-compose logs --follow <сервис>
docker-compose logs --follow mongo  # пример

# проверить статусы сервисов
docker-compose ps -a

# зайти в какой-то контейнер
docker-compose exec <сервис> <shell-команда>
docker-compose exec mongo sh  # пример

About

Start for fastapi + mongo project, but it was decided to not use mongo for now due to lack of good ODMs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published