Web-разработка — это создание сайтов и веб-приложений, которые работают через браузер. Веб-сайт может быть простой страницей с текстом (статический сайт) или сложным приложением с регистрацией пользователей, базой данных и бизнес-логикой (динамическое приложение).
Способы реализации web-приложений (в общих чертах):
- Статические сайты — HTML/CSS/JavaScript, контент не меняется на сервере (подходит для блогов, лендингов).
- Сервер-рендеринг (классический) — браузер получает HTML от сервера, сервер формирует страницы на основе данных (вот тут и появляется Django).
- Клиентские приложения (SPA) — фронтенд (React, Vue, Angular) загружается в браузере и взаимодействует с сервером через API.
- Серверless / микросервисы — логика делится на маленькие функции/сервисы (подходит для масштабирования).
Где в этой картине стоит Django: Django — это фреймворк для создания серверной части (backend). Он удобен для сайтов с серверной генерацией страниц и идеально подходит, когда нужно быстро получить рабочее, безопасное приложение с CRUD-операциями, авторизацией, админкой и базой данных.
Django — это набор готовых инструментов и библиотек, который помогает быстро писать веб-приложения на Python. Представь, что вместо того, чтобы каждый раз придумывать, как хранить пользователей, как подключить базу данных и как обезопасить сайт, ты получаешь уже готовые и проверенные механизмы.
Ключевые идеи Django:
- Быстрое создание приложений — много готовой «сборной» функциональности.
- Конвенция над конфигурацией — удобная организация проекта, понятные правила.
- Безопасность по умолчанию — защита от типичных уязвимостей (например, CSRF, SQL-инъекции).
- Мощная ORM — удобная работа с базой данных без прямого написания SQL.
- Встроенная админ-панель — позволяет управлять данными через интерфейс, не пиша UI.
Мы будем знакомиться с Django пошагово: от установки и структуры проекта до работы с моделями, шаблонами и формами.
Иногда сервер должен не возвращать HTML-страницы, а отдавать данные в формате JSON — например, когда фронтенд — отдельное SPA или мобильное приложение. Для этого в экосистеме Django есть Django REST Framework (DRF) — библиотека, которая делает создание API быстрым и удобным.
Мы сначала изучим сам Django (основы, шаблоны, ORM, формы), а затем перейдём к DRF, чтобы научиться делать API и интеграции с фронтендом.
-
Django — это Python-фреймворк, поэтому нужен установленный интерпретатор Python.
-
Рекомендуется Python 3.10 или новее.
-
Проверить версию:
python --version # или python3 --version -
Если у вас несколько версий Python, в командах будем использовать
pythonилиpython3по окружению ОС.
Всегда работаем в отдельном виртуальном окружении — это изолирует зависимости проекта.
-
Создать и активировать:
python -m venv .venv # Windows .venv\Scripts\activate # macOS / Linux source .venv/bin/activate
-
После активации устанавливайте пакеты через
pip, они попадут только в текущее окружение.
-
Устанавливается через pip:
pip install django
-
Проверить версию:
django-admin --version
-
В курсе мы будем стараться использовать последнюю стабильную версию Django.
-
Мы будем работать в VS Code (Visual Studio Code). Это лёгкая и популярная IDE с большим набором расширений для Python/Django.
-
Полезные расширения:
- Python (официальное расширение Microsoft)
- Pylance (анализатор типов)
- Django или Django Template support (подсветка шаблонов)
- Docker (если будет использоваться)
-
Настроим отладку, виртуальное окружение и запуск команд из терминала VS Code.
Примечание: PyCharm — тоже отличный выбор. Но на курсе примеры и инструкции будут под VS Code.
- По умолчанию Django использует SQLite — лёгкая файловая СУБД, идеально подходящая для обучения и небольших проектов.
- Для продакшена и при масштабировании рекомендуем PostgreSQL — мы обязательно рассмотрим переход на PostgreSQL в более позднем модуле.
- Инструменты для работы с БД:
DBeaver,pgAdmin, но в простых случаях достаточно команд Django и встроенных миграций.
-
Django поставляется с небольшим встроенным сервером для разработки. Это не сервер для продакшена, но он удобен для разработки и тестирования.
-
Запуск:
python manage.py runserver
-
После запуска открой браузер по адресу
http://127.0.0.1:8000/илиhttp://localhost:8000/. -
Что делает сервер: принимает HTTP-запросы от браузера, передаёт их в ваше Django-приложение, которое формирует ответ (HTML/JSON) и отправляет обратно.
Делаем первые шаги прямо сейчас — проверка и минимальная конфигурация:
-
Установить Python (если ещё нет).
-
Создать рабочую папку для курса:
mkdir django_course cd django_course -
Создать виртуальное окружение и активировать:
python -m venv .venv source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows
-
Установить Django:
pip install django
-
Создать новый проект Django:
django-admin startproject mysite .Это создаст базовую структуру:
manage.py, папкуmysite/с настройками. -
Запустить миграции и встроенный сервер:
python manage.py migrate python manage.py runserver
-
Открыть в браузере:
http://127.0.0.1:8000/. Должна отобразиться стартовая страница Django — значит всё работает.
-
manage.py — это инструмент для управления проектом: запуск сервера, выполнение миграций, создание суперпользователя, запуск тестов и прочее.
-
Миграции — способ сказать базе данных, как должны выглядеть таблицы в соответствии с моделями Django. Команды:
makemigrations→migrate. -
Админ-панель — готовый интерфейс для управления моделями. Создаём суперпользователя:
python manage.py createsuperuser
Затем заходите на
http://127.0.0.1:8000/admin/. -
Разделение сред: локально можно использовать SQLite; позже для «приближения к продакшену» мы настроим PostgreSQL и покажем, как переключать настройки.
- Что такое веб-разработка и какие бывают её основные направления?
- Чем бэкенд отличается от фронтенда?
- Для чего нужен фреймворк в веб-разработке?
- Что делает Django и почему его называют “фреймворком высокого уровня”?
- Какие основные задачи Django берет на себя (перечислите хотя бы три)?
- Что такое ORM и зачем она нужна?
- Что делает команда
pip install django? - Как проверить, что Django установлен правильно?
- Для чего используется команда
python manage.py runserver? - По какому адресу доступен локальный сервер Django по умолчанию?
- Какая база данных используется по умолчанию в Django?
- Почему для небольших проектов удобно использовать SQLite?
- Какие другие базы данных можно подключить к Django, кроме SQLite?
- Что делает Django Rest Framework (DRF) и зачем он нужен?
- Какая среда разработки будет использоваться в нашем курсе? Почему именно она?
- Что такое локальный сервер и зачем он нужен разработчику?
- Что делает команда
django-admin --version? - Для чего нужен интерпретатор Python в контексте Django-проекта?
- Какие инструменты помогают управлять файлами и проектами на компьютере?
- Почему Django считается хорошим выбором для начинающих разработчиков?
- Установить Python и VS Code (если ещё не установлены).
- Создать папку
django_course, настроить venv и установить Django. - Создать проект
mysite(команда выше), выполнитьmigrateи запуститьrunserver. - Создать суперпользователя (
createsuperuser) и зайти в админ-панель. - Сделать скриншот стартовой страницы
http://127.0.0.1:8000/и админ-панели — прикрепить к заданию.