- Добавлена конфигурация через poetry (pyproject.toml + poetry.lock) - Переделана система конфигурации Django с .env переменными - Добавлен файл .env для локальной разработки (SQLite БД) - Обновлен settings.py для работы с переменными окружения - Создана документация по локальной разработке (DEVELOPMENT.md) - Подготовлена инфраструктура для Docker (Dockerfile, docker-compose.yml) - Обновлен .gitignore для Python/Django проекта Проект работает локально с миграциями и админ пользователем (admin/1234).
189 lines
6.1 KiB
Markdown
189 lines
6.1 KiB
Markdown
# 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`)
|
||
|