Шаблон для быстрого стара разработки REST приложений с использованием docker контейнеров.
- для создания виртуального окружения и установки зависимостей используется pipenv
- контроль версий пакет и их совместимости осуществляется с помощью pipenv
- разработке введется в docker контейнерах
- dev версия: django + PostgreSQL
- prod версия: nginx + (gunicorn + django) + PostgreSQL
- используемая база данных PostgreSQL, но поддерживается возможность использования sqlite3
- основные конфигурационные файлы разделены на dev и prod версию
- из коробки переопределена модель Uesr, использовано наследование от AbstractUser
- нет необходимости пере собирать docker контейнер при изменении кода проекта
- Django - Web framework
- Django Rest FrameWork - is a powerful and flexible toolkit for building Web APIs
- Gunicorn - Python WSGI HTTP Server для UNIX
- Docker - Package Software into Standardized Units for Development, Shipment and Deployment
- Nginx - HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения
- PostgreSQL - база данных
Основные | Dev |
---|---|
django | flake8 |
djangorestframework | flake8-quotes |
environs | flake8-broken-line |
psycopg2-binary | flake8-return |
django-filter | flake8-isort |
pillow | pytest |
gunicorn | pep8-naming |
|--apps -> содержит приложения django
|--config -> содержит настройки django
| |--settings -> настройки проекта
|--envfiles -> переменные виртуального окружения проекта
| |--templates -> шаблон переменных виртуального окружения
|--nginx -> настройки web сервера
|--utils -> содержит полезные утилиты проекта
В корне проекта находятся файла для сборки контейнеров для dev и prod версии, а так же файлы с зависимостями и настройками всего проекта, в том числе стартовые скрипты создаваемых docekr контейнеров.
- Старт dev версии:
docker-compose up -d --build
- Старт prod версии:
docker-compose -f docker-compose.prod.yml up -d --build
MIT Free Software, Hell Yeah!