# Rosmorport Test Project - Setup для локальной разработки Проект на Django 5.0.4 с использованием Poetry для управления зависимостями. ## Предварительные требования - **Python** 3.12 или выше - **Poetry** 1.7 или выше ([установка](https://python-poetry.org/docs/#installation)) ## Быстрый старт ### 1️⃣ Установка зависимостей ```bash # Перейти в корневую директорию проекта cd /Users/e-serg/PRJ/2024-test-rosmorport # Установить все зависимости через poetry poetry install ``` ### 2️⃣ Настройка окружения Файл `.env` уже создан с базовыми настройками для разработки: ```bash # Можешь проверить текущие настройки cat .env # При необходимости отредактируй .env (но для разработки обычно не требуется) # nano .env ``` ### 3️⃣ Инициализация БД ```bash # Перейти в директорию Django проекта cd rosmorport_tsts # Выполнить миграции (создаст db.sqlite3) poetry run python manage.py migrate # Создать суперпользователя (админ пользователь) poetry run python manage.py shell << 'EOF' from django.contrib.auth.models import User u = User.objects.get_or_create(username='admin', defaults={'email': 'admin@example.com'})[0] u.set_password('1234') u.save() print("Admin user: admin / 1234") EOF ``` ### 4️⃣ Запуск приложения ```bash # Запустить development сервер poetry run python manage.py runserver 0.0.0.0:8000 ``` Откройся в браузере: **http://localhost:8000** Админ панель: **http://localhost:8000/admin** - Логин: `admin` - Пароль: `1234` ## 📁 Структура проекта ``` rosmorport_tsts/ ├── manage.py # Django управление ├── db.sqlite3 # БД (создаётся после migrate) ├── public/ │ ├── static/ # Статические файлы (CSS, JS, images) │ └── media/ # Загруженные пользователем файлы ├── logs/ # Логи приложения ├── rosmorport_tsts/ │ ├── settings.py # Конфигурация Django │ ├── urls.py # URL маршруты │ ├── views.py # Представления │ ├── models.py # Модели данных │ ├── wsgi.py # WSGI приложение │ └── _my_secret__sample.py # Образец файла для secrets (не использовать) ├── templates-django/ # Django шаблоны └── ... ``` ## 🔧 Полезные команды ### Django команды ```bash # Создать новое приложение poetry run python manage.py startapp app_name # Создать миграцию poetry run python manage.py makemigrations # Применить миграции poetry run python manage.py migrate # Django shell (для тестирования ORM) poetry run python manage.py shell # Собрать статические файлы (для production) poetry run python manage.py collectstatic # Запустить тесты poetry run python manage.py test ``` ### Poetry команды ```bash # Добавить новый пакет poetry add package_name # Добавить пакет только для разработки poetry add --group dev package_name # Обновить зависимости poetry update # Посмотреть установленные пакеты poetry show ``` ## 🌍 Переменные окружения Все настройки хранятся в файле `.env`. Основные переменные: ```env # Режим разработки DEBUG=True # Хосты для доступа ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0 # Секретный ключ Django SECRET_KEY=django-insecure-local-dev-secret-key # База данных (SQLite для разработки) DB_ENGINE=django.db.backends.sqlite3 DB_NAME=db.sqlite3 ``` Для production используй: - **PostgreSQL**: раскомментируй строки с `DB_ENGINE=django.db.backends.postgresql` - **MySQL**: раскомментируй строки с `DB_ENGINE=django.db.backends.mysql` ## 🐳 Docker (для контейнеризации) После того как всё будет работать локально, смотри `DOCKER.md` для инструкций по контейнеризации. ## 🚨 Troubleshooting ### Ошибка: "Не найдена переменная окружения SECRET_KEY" **Решение**: Убедись что `.env` файл существует в корневой директории проекта. ### Ошибка: "port 8000 already in use" **Решение**: Используй другой порт: ```bash poetry run python manage.py runserver 0.0.0.0:8001 ``` ### Ошибка: "No module named 'django'" **Решение**: Убедись что выполнил `poetry install` в корневой директории проекта. ### БД не обновляется **Решение**: Выполни миграции: ```bash poetry run python manage.py migrate ``` ## 📝 Дополнительная информация - [Django документация](https://docs.djangoproject.com/) - [Poetry документация](https://python-poetry.org/docs/) - [PEP 8 - Python Style Guide](https://pep8.org/) ## 👤 Автор Сергей Еремин (e-serg@mail.ru) --- **Статус**: ✅ Готово к локальной разработке **Следующий шаг**: Контейнеризация (смотри `DOCKER.md`)