Files
2024-test-rosmorport/DEVELOPMENT.md
erjemin d9e8c2d8bd feat: Настройка проекта для локальной разработки
- Добавлена конфигурация через poetry (pyproject.toml + poetry.lock)
- Переделана система конфигурации Django с .env переменными
- Добавлен файл .env для локальной разработки (SQLite БД)
- Обновлен settings.py для работы с переменными окружения
- Создана документация по локальной разработке (DEVELOPMENT.md)
- Подготовлена инфраструктура для Docker (Dockerfile, docker-compose.yml)
- Обновлен .gitignore для Python/Django проекта
Проект работает локально с миграциями и админ пользователем (admin/1234).
2026-03-31 00:09:46 +03:00

189 lines
6.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`)