Крок 2. Bootstrap Notes¶
Навчальний проєкт:
bootstrap_notes— standalone застосунок (SQLite, без PostgreSQL). Це другий крок еволюції. Ти переходиш відHttpResponse("текст")до повноцінного CRUD з Bootstrap UI.Передумови: пройдений Крок 1. Hello Django — є
Noteмодель і Django-проєкт.
Результат кроку¶
http://localhost:8000/ → Редирект на /notes/
http://localhost:8000/notes/ → Список нотаток — Bootstrap Cards Grid
http://localhost:8000/notes/new/ → Форма створення (ModelForm + PRG)
http://localhost:8000/notes/1/ → Деталь нотатки
http://localhost:8000/notes/1/edit/ → Форма редагування
http://localhost:8000/notes/1/delete/ → Підтвердження видалення (POST only)
http://localhost:8000/admin/ → Django Admin з кастомним NoteAdmin
Що ти вивчиш¶
ModelForm— автоматична форма з моделі- PRG-паттерн (Post/Redirect/Get) — захист від дублікатів при F5
- Django Messages — Flash-повідомлення
- Template Inheritance —
base.htmlі блоки{% extends %}/{% block %} - Bootstrap 5 — Grid, Cards, Navbar, Sticky Footer
- CRUD views:
note_create,note_edit,note_delete,note_detail get_object_or_404— безпечна замінаobjects.get()
Структура після завершення кроку¶
bootstrap_notes/
├── manage.py
├── requirements.txt ← Django + django-bootstrap5
├── db.sqlite3
├── hello_project/
│ ├── settings.py ← MESSAGE_TAGS, INSTALLED_APPS
│ └── urls.py
└── hello_app/
├── models.py ← Note (з Кроку 1)
├── forms.py ← NoteForm (ModelForm) ← НОВИЙ
├── views.py ← 5 CRUD views ← РОЗШИРЕНО
├── urls.py ← 6 маршрутів ← РОЗШИРЕНО
├── admin.py ← NoteAdmin кастомний
├── migrations/
└── templates/
├── base.html ← Bootstrap CDN, Navbar, Messages ← НОВИЙ
└── hello_app/
├── note_list.html ← Card Grid ← ПЕРЕПИСАНИЙ
├── note_detail.html ← Деталь + Breadcrumb ← НОВИЙ
├── note_form.html ← Bootstrap Form ← НОВИЙ
└── note_confirm_delete.html ← Видалення ← НОВИЙ
Навчальний стан vs Notes Chat App¶
| bootstrap_notes (цей крок) | notes_chat_app (кінцева мета) | |
|---|---|---|
| Проєкт | Standalone SQLite | Docker + PostgreSQL |
| Auth | Немає | @login_required, Groups |
| ModelForm | Базовий NoteForm |
Складніші форми з clean_*() |
| Views | FBV без перевірки юзера | FBV + selectors + services |
| Templates | Bootstrap CDN, 4 шаблони | Bootstrap SaaS ієрархія: base → layout → page |
| Admin | NoteAdmin(admin.ModelAdmin) |
NoteAdmin + Unfold Admin |
Порядок читання цього кроку¶
- Моделі і міграції — Note модель, makemigrations, migrate, запуск проєкту
- Django Admin — реєстрація моделей, кастомний ModelAdmin
- ModelForm і CRUD — ModelForm, PRG, Messages, base.html, всі CRUD views і шаблони
- Контрольна точка — чеклист, типові помилки, практичні завдання