Модуль 3

Встановлення Django та створення першого проєкту

Ось твій урок у стилі David Malan. Уяви, що ти сидиш у лекційній залі Гарварду (або просто зручно вдома з чашкою кави), а на екрані — термінал. Поїхали!


🚀 Тема: Встановлення Django та створення першого проєкту

(Або: Як перестати будувати велосипеди й почати будувати космічні кораблі)


1. 🔥 Вступ: проблема та мотивація

Уявіть, що ви вирішили відкрити ресторан. Що ви зробите найперше? Почнете вирощувати пшеницю для хліба? Або, можливо, підете до кузні виковувати ножі та виделки?

Звісно, ні. Це безумство. Ви орендуєте приміщення, купуєте готове обладнання (плити, холодильники) і наймаєте персонал. Ви хочете готувати їжу, а не створювати інструменти для її приготування.

У програмуванні — те саме.

Якщо ви хочете створити вебсайт (наприклад, наступний Instagram або Pinterest), писати все з чистого аркуша на чистому Python — це як вирощувати пшеницю. Ви будете місяцями писати код для обробки запитів, безпеки паролів, з'єднання з базою даних... і навіть не почнете робити сам сайт.

Чи є кращий шлях?

Тут на сцену виходить Django. Це ваша професійна, повністю обладнана кухня. Тут "батарейки вже в комплекті" (batteries included). Все, що потрібно для безпеки, баз даних та адміністрації, вже написано за вас найкращими розробниками світу.

Сьогодні ми не просто встановимо бібліотеку. Ми закладемо фундамент вашого майбутнього "цифрового хмарочоса". Готові?


2. 🧠 Теоретична база (без сухої академічності)

Перш ніж ми торкнемося клавіатури, розберімося з двома концепціями. Якщо ви зрозумієте їх зараз, ви уникнете 90% головного болю новачків.

1. Віртуальне оточення (Virtual Environment) 📦

Уявіть, що ваш комп'ютер — це величезний склад інструментів. Для одного проєкту вам потрібен молоток версії 1.0, а для іншого — молоток версії 2.0. Якщо вони лежатимуть в одній купі, виникне конфлікт.

Віртуальне оточення (venv) — це ізольована кімната на цьому складі. Все, що ми встановлюємо в цій кімнаті, залишається в цій кімнаті. * Чому це важливо: Ви не "засмічуєте" свій основний Python і не ламаєте інші проєкти.

2. Проєкт vs Застосунок (Project vs App) 🏗️

Це плутає багатьох. * Проєкт (Project): Це весь ваш вебсайт. Це як торговий центр. Він має загальну охорону, спільну електрику, одну адресу. * Застосунок (App): Це окремий магазин у цьому центрі. Наприклад: "Блог", "Форум", "Магазин товарів".

Django дозволяє будувати сайт із таких "цеглинок". Але сьогодні ми почнемо з фундаменту — створимо сам Проєкт.


3. 🧪 Приклади (від "Hello" до "Rocket Launch")

Відкривайте термінал (або командний рядок). Давайте зробимо це разом, крок за кроком.

Етап 1: Створення "чистої кімнати"

Спочатку створимо папку для нашого коду і зайдемо в неї.

mkdir my_first_site
cd my_first_site

Тепер — магія ізоляції. Створимо віртуальне оточення. * Windows: python -m venv .venv * Mac/Linux: python3 -m venv .venv

❓ Питання до вас: Що змінилося? На перший погляд — нічого. Але у папці з'явилася папка .venv. Тепер треба її активувати.

  • Windows: .venv\Scripts\activate
  • Mac/Linux: source .venv/bin/activate

Тепер подивіться на свій термінал. Ви маєте побачити напис (.venv) на початку рядка. Це знак того, що ви "ввійшли в кімнату".

Етап 2: Купуємо обладнання (Install Django)

Тепер, коли ми в ізоляції, встановимо Django.

pip install django

Що відбувається "під капотом"? pip йде в інтернет, завантажує файли Django і кладе їх у вашу папку .venv. Ваш основний Windows/Mac про це навіть не знає.

Етап 3: Створення проєкту (Startproject)

Увага! Зараз буде найважливіша команда. Ми скажемо Django: "Згенеруй мені структуру папок".

django-admin startproject config .

Стоп! 🛑 Чому там крапка в кінці? Це помилка? Ні! * Якщо ви напишете без крапки: Django створить папку config, а всередині — ще одну папку config. Це як покласти коробку в коробку. Незручно. * Крапка . означає: "Встанови проєкт ПРЯМО ТУТ, у поточній папці".

Етап 4: Запуск ракети 🚀

У вас з'явився файл manage.py. Це ваш пульт керування. Через нього ми будемо віддавати накази.

Давайте запустимо сервер розробки:

python manage.py runserver

Ви побачите купу тексту, але шукайте рядок: Starting development server at http://127.0.0.1:8000/

Скопіюйте цю адресу в браузер. Що ви очікуєте побачити? Порожню білу сторінку? Помилку?

Натискайте Enter.

🎉 Вуаля! Ви бачите ракету, що злітає, і напис "The install worked successfully!". Це означає, що ваш вебсервер працює і чекає на ваші команди.


4. 🛠 Практична частина

Викладач може скільки завгодно розповідати про плавання, але поки ви не стрибнете у воду — ви не попливете. Ваш час кодити.

Завдання 1: "М'язова пам'ять" Зупиніть сервер (натисніть Ctrl+C у терміналі). Видаліть папку my_first_site. Зробіть все з нуля ще раз, не підглядаючи в інструкцію (ну, або підглядаючи лише одним оком). 1. Папка 2. Venv 3. Activate 4. Install 5. Startproject (з крапкою!) 6. Runserver

Завдання 2: "Зміна порту" За замовчуванням сайт працює на порту 8000. Уявіть, що цей порт зайнятий іншою програмою. Спробуйте запустити сервер на порту 3000. Підказка: Команда runserver може приймати аргументи. Спробуйте: python manage.py runserver 3000.

Завдання 3: "А що, якщо..." Що буде, якщо ви спробуєте запустити python manage.py runserver, не активувавши віртуальне оточення (.venv)? * Спробуйте: Закрийте термінал, відкрийте знову і одразу спробуйте запустити. * Результат: Помилка ModuleNotFoundError: No module named 'django'. * Висновок: Комп'ютер не бачить Django за межами "кімнати".

Завдання 4: Міні-кейс Створіть файл requirements.txt. Це список "інгредієнтів" вашого проєкту, щоб інший розробник міг його запустити. Команда: pip freeze > requirements.txt. Відкрийте цей файл. Що ви там бачите окрім Django? (Там будуть asgiref, sqlparse — це залежності самого Django. Він не працює сам по собі).


5. 💡 Мислення як у розробника

Як відрізнити новачка від профі на цьому етапі?

  1. Новачок боїться помилок у червоному тексті термінала. Профі читає цей текст. Django дуже дружній — він часто пише прямим текстом: "Ви забули зробити міграції" або "Цей порт зайнятий". Читайте помилки, це ваші підказки!
  2. Новачок називає проєкт django_site або test. Профі називає папку налаштувань config або core. Це стандарт, який допомагає іншим розробникам миттєво зрозуміти: "Ага, налаштування лежать тут".
  3. Структура — це все. Не кидайте файли абияк. manage.py має лежати в корені. Якщо ви загубили manage.py, ви втратили пульт керування проєктом.

Порада: Завжди, чуєте, ЗАВЖДИ активуйте віртуальне оточення першим ділом, коли сідаєте працювати. Зробіть це рефлексом, як пристібання паска безпеки в авто.


6. 🧩 Підсумок

Що ми маємо на даний момент? Ми ще не створили Facebook, але ми: 1. Підготували "кухню" (віртуальне оточення). 2. Встановили "плиту" (Django). 3. Запустили "ресторан" і переконалися, що світло горить (сторінка з ракетою).

Ви вмієте розгортати локальний сервер. Це перший крок будь-якого Web-розробника рівня Senior.

🔜 У наступній серії: Ракета летить, але вона порожня. Як додати туди пасажирів? Як зробити так, щоб за адресою /hello сайт вітався з вами, а за адресою /contacts показував ваш email? Ми поговоримо про URLs (маршрути) та Views (вигляди). Це буде наша карта і наш компас.

А поки — пограйтеся з запуском сервера. До зустрічі на наступному уроці! 👋