Практическое исследование архитектуры Django через пошаговую реализацию веб-приложения. Каждый коммит = освоение конкретной концепции фреймворка (URL-диспетчеризация, CBV, ORM, шаблоны).
| Этап обучения | Концепция Django | Реализация в проекте | Статус |
|---|---|---|---|
| 1 | URL-диспетчеризация | urls.py с именованными маршрутами |
✅ Завершено |
| 2 | Функциональные вьюхи (FBV) | Обработка запросов через функции | ✅ Завершено |
| 3 | Шаблонизация | templates/ с наследованием блоков |
✅ Завершено |
| 4 | Классовые вьюхи (CBV) | ListView, DetailView для знаков зодиака |
🟡 В процессе |
| 5 | ORM и модели | models.py с отношениями «знак → стихия» |
🟡 В процессе |
| 6 | Админ-панель | Кастомизация admin.py |
⬜ Планируется |
| 7 | Формы и валидация | forms.py для пользовательского ввода |
⬜ Планируется |
| 8 | Аутентификация | auth для личных гороскопов |
⬜ Планируется |
Учебный проект — лаборатория архитектурных решений. В процессе реализации осваиваются ключевые паттерны Django:
# Пример структуры маршрутов (демонстрирует проектирование)
zodiac/ → Список всех знаков (главная страница)
zodiac/<str:sign>/ → Детальная страница знака
zodiac/type/<str:type>/ → Фильтрация по стихии (огонь/земля/воздух/вода)
🔑 Бэкенд-ценность: Чёткое проектирование маршрутов = основа для будущего REST API.
### 2. Разделение ответственности (MVT)
Models → Бизнес-логика (свойства знаков, совместимость)
Views → Оркестрация (получение данных → передача в шаблон)
Templates → Презентация (без бизнес-логики)
🔑 Бэкенд-ценность: Понимание разделения слоёв — фундамент для масштабируемой архитектуры.
### 3. Расширяемость через наследование
Базовый шаблон base.html → единый каркас приложения
Расширение через {% extends %} → минимизация дублирования
🔑 Бэкенд-ценность: Принципы DRY и наследования применимы к сервисам и микросервисам.
## 🧪 Как запустить текущую версию
# 1. Клонировать репозиторий
git clone https://github.com/Nicemice13/test_django_project.git
cd test_django_project
# 2. Активировать виртуальное окружение
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 3. Установить зависимости
pip install -r requirements.txt
# 4. Запустить сервер разработки
python manage.py runserver
# 5. Открыть в браузере
open http://localhost:8000