- Проект задумывался с целью использования, но превратился просто в учебный проект.
| Библиотека | Описание |
|---|---|
| python 3.10 | Язык программирования Python версии |
| django 4 | Фронт на Джанго-шаблонах |
| celery | Очередь задач |
| rabbitmq | Брокер для celery |
| flower | Трекер для celery задач |
| django-view-breadcrumbs | "Хлебные крошки", breadcrumbs для отображения "пути". |
| django-ckeditor 5 | Редактор теста |
| python-slugify | Транслитерация текста |
| Poetry | Пакетный менеджер |
| Environs[django] | Для хранения секретов в файле .env |
| django-json-widget | Для удобного просмотра и редактирования JSONField |
| django-crispy-forms(c crispy_bootstrap5) | Для Генерации форм |
| bootstrap 5 | CSS |
| pillow | images |
| sorl-thumbnail | images thumbnails |
| django-ckeditor-5 | Редактор текста для админки |
| django-dirtyfields | Отслеживание изменений в объекте модели, до сохранения в БД |
| gunicorn | wsgi-сервер |
| django-split-settings | Позволяет разделять настройки на несколько файлов |
| sentry | Отслеживание ошибок |
| HTMX | Интерактивные элементы(пагинация по скролу вниз.) |
| django-htmx | Middleware для работы с HTMX. |
| requests | Для отправки уведомлений в Телеграм |
| Библиотека | Описание |
|---|---|
| pre-commit | Автоматический запуск black, isort, flake8 при использование git commit |
| black, isort, flake8 | Code Style |
| django-debug-toolbar | Оверлей для разработки. |
| django-stubs[compatible-mypy] | typehints |
| djlint | Линтер для Django-шаблонов |
| selenium | Функциональные тесты |
| Factory Boy | Generate fake, test data |
| django-rich | Colourized tests outputs |
- Везде используются сокращения dev и prod.
- Используется стратегия "Merge Compose files". т.е. есть базовый
compose.ymlи он расширяется файломcompose.override.ymlдля dev и файломcompose.prod.ymlдля prod. - Переменные окружения завязанные на dev/prod уже прописаны.
- Запуск:
docker compose up- запустится сразуcompose.ymlиcompose.override.ymlкоторый расширяет его до dev версии.- Иначе:
docker compose -f ./infra/compose.yml -f ./infra/compose.override.yml --env-file=./.env up -d - poetry так же ставит в venv команды
docker_dev_upиdocker_dev_stop.
- Иначе:
- Запуск
djnago runserverиcelery worker.
Для этого есть короткие команды создаваемыеpoetry: -dwc(django with celery) -dr(django run) -cw(celery worker) - Доступны management команды для создания фикстур:
python manage.py fixture- Для создания фикстур.python manage.py delete- Для отчистки таблиц в которые были добавлены фикстуры.
- Создается superuser с login: admin password: admin
login и password берутся из environment variables вcompose.override.yml, там их можно заменить.
Запуск: docker compose -f compose.yml -f compose.prod.yml up - базовый файл и расширяющий его. Последовательность важна!
- Celery работает в одном контейнере с Django, т.к. так проще, выносить ее в отдельный контейнер сейчас нету необходимости.


