База проекта универсальна и подходит для разных сфер услуг. Цель - постоянный рефакторинг в процессе роста навыков.
Личный демонстрационный проект для отработки навыков и внедрения новых технологий, если они уместны.
Структура проекта
Адрес проекта
(запускается локально)
http://127.0.0.1:8000/
(запуск на сервере)
https://:8000/
/admin/ # Адрес админки проекта
/docs/ # Документация
Handlers
api/
Подготовка проекта к запуску
3
пункт для локального запуска. 4
пункт для ведения разработки
-
Склонируйте репозиторий и перейдите в него:
git clone https://github.com/Oskalovlev/osky.git
cd osky/
-
Для работы с PostgreSQL:
-
Создайте в директории
infra/
файл.env
командой:touch infra/.env
Заполните переменные по примеру файла
.env.example
-
-
Создайте и активируйте виртуальное окружение Poetry:
Установка Poetry(Если не установлено)
Для Linux, macOS, Windows (WSL):
curl -sSL https://install.python-poetry.org | python3 -
Для Windows (Powershell):
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
-
В macOS и Windows сценарий установки предложит добавить папку с исполняемым файлом Poetry в переменную PATH. Сделайте это, выполнив следующую команду (не забудьте поменять {USERNAME} на имя вашего пользователя):
- macOS:
export PATH="/Users/{USERNAME}/.local/bin:$PATH"
- Windows:
$Env:Path += ";C:\Users\{USERNAME}\AppData\Roaming\Python\Scripts"; setx PATH "$Env:Path"
Проверить установку:
bash poetry --version
- Установка автодополнений bash (опционально):
poetry completions bash >> ~/.bash_completion
- macOS:
Запуск виртуального окружения
- Создать файл .toml:
poetry init
Соглашаясь на все стандартные значения, если нет другого варианта
- Создание виртуального окружения:
poetry env use python
- Установка зависимостей:
poetry install --with dev,test
- Запуск оболочки и активация виртуального окружения (из папки проекта):
poetry shell
- Проверка активации виртуального окружения:
poetry env list
Потенциальные проблемы
a. виртуальное окружение Poetry недоступно при выборе интерпретатора
С высокой вероятностью виртуальное окружение создалось вне папки проекта. Командой ниже можно удостовериться, что окружение будет создано внутри пути проекта:
poetry config virtualenvs.in-project true
Если проект уже был создан, придется пересоздать окружение:
poetry env list # вывести имя текущего окружения poetry env remove <current environment> # удалить текущее окружение poetry install # создаст новое окружение с уже с учетом нового конфига virtualenvs.in-project true
b. путь к Poetry не прописан / приходится указывать заново при переоткрытии проекта в редакторе
В зависимости от типа используемой оболочки, найдите и откройте bashrc / zshrc файл:
nano ~/.zshrc
Если в файле нет этой строки, добавьте ее и сохраните изменения (не забудьте указать свой {USERNAME}):
export PATH="/Users/{USERNAME}/.local/bin:$PATH"
-
-
Настройте pre-commit:
pre-commit
установится автоматически, после ввода команды зависимостей, можно проверить:pre-commit --version
Для работы нужно ввести команду:
pre-commit install
Теперь
pre-commit
рабатывает автоматически при коммитах.Исправленные
black'ом
файлы нужно добавить:git add .
Для запуска в Docker-контейнере используйте инструкцию
-
Запустите сборку контейнеров:
docker compose -f infra/docker-compose.yaml up -d --build
-
Для остановки контейнеров:
docker compose -f infra/docker-compose.yaml stop
-
Для удаления контейнеров:
docker compose -f infra/docker-compose.yaml down (-v опционально, удалит связи)
Для локального запуска используйте инструкцию
-
Выполните миграции:
-
Инициализируйте миграции Alembic (опционально)
alembic init
-
Создайте миграции (будут созданы с сортировкой по дате, но лучше добавить комментарий)
alembic revision --autogenerate
-
Примените миграции
alembic upgrade head
-
-
Локальный запуск:
poetry run task app (в активном Poetry окружением)
- Оскалов Лев (Telegram: @oskalov, Github: Oskalovlev)