Skip to content

Latest commit

 

History

History
209 lines (149 loc) · 13.2 KB

File metadata and controls

209 lines (149 loc) · 13.2 KB

Модуль 1. Урок 1. Django — что это такое? Инструментальные средства

Вводная: что такое web-разработка простыми словами

Web-разработка — это создание сайтов и веб-приложений, которые работают через браузер. Веб-сайт может быть простой страницей с текстом (статический сайт) или сложным приложением с регистрацией пользователей, базой данных и бизнес-логикой (динамическое приложение).

Способы реализации web-приложений (в общих чертах):

  • Статические сайты — HTML/CSS/JavaScript, контент не меняется на сервере (подходит для блогов, лендингов).
  • Сервер-рендеринг (классический) — браузер получает HTML от сервера, сервер формирует страницы на основе данных (вот тут и появляется Django).
  • Клиентские приложения (SPA) — фронтенд (React, Vue, Angular) загружается в браузере и взаимодействует с сервером через API.
  • Серверless / микросервисы — логика делится на маленькие функции/сервисы (подходит для масштабирования).

Где в этой картине стоит Django: Django — это фреймворк для создания серверной части (backend). Он удобен для сайтов с серверной генерацией страниц и идеально подходит, когда нужно быстро получить рабочее, безопасное приложение с CRUD-операциями, авторизацией, админкой и базой данных.


Что такое Django — простыми словами

Django — это набор готовых инструментов и библиотек, который помогает быстро писать веб-приложения на Python. Представь, что вместо того, чтобы каждый раз придумывать, как хранить пользователей, как подключить базу данных и как обезопасить сайт, ты получаешь уже готовые и проверенные механизмы.

Ключевые идеи Django:

  • Быстрое создание приложений — много готовой «сборной» функциональности.
  • Конвенция над конфигурацией — удобная организация проекта, понятные правила.
  • Безопасность по умолчанию — защита от типичных уязвимостей (например, CSRF, SQL-инъекции).
  • Мощная ORM — удобная работа с базой данных без прямого написания SQL.
  • Встроенная админ-панель — позволяет управлять данными через интерфейс, не пиша UI.

Мы будем знакомиться с Django пошагово: от установки и структуры проекта до работы с моделями, шаблонами и формами.


Немного о Django REST Framework (DRF)

Иногда сервер должен не возвращать HTML-страницы, а отдавать данные в формате JSON — например, когда фронтенд — отдельное SPA или мобильное приложение. Для этого в экосистеме Django есть Django REST Framework (DRF) — библиотека, которая делает создание API быстрым и удобным.

Мы сначала изучим сам Django (основы, шаблоны, ORM, формы), а затем перейдём к DRF, чтобы научиться делать API и интеграции с фронтендом.


Инструменты, которые понадобятся (и почему)

1. Python

  • Django — это Python-фреймворк, поэтому нужен установленный интерпретатор Python.

  • Рекомендуется Python 3.10 или новее.

  • Проверить версию:

    python --version
    # или
    python3 --version
  • Если у вас несколько версий Python, в командах будем использовать python или python3 по окружению ОС.

2. Виртуальное окружение (venv)

Всегда работаем в отдельном виртуальном окружении — это изолирует зависимости проекта.

  • Создать и активировать:

    python -m venv .venv
    # Windows
    .venv\Scripts\activate
    # macOS / Linux
    source .venv/bin/activate
  • После активации устанавливайте пакеты через pip, они попадут только в текущее окружение.

3. Django

  • Устанавливается через pip:

    pip install django
  • Проверить версию:

    django-admin --version
  • В курсе мы будем стараться использовать последнюю стабильную версию Django.

4. Среда разработки (IDE) — VS Code

  • Мы будем работать в VS Code (Visual Studio Code). Это лёгкая и популярная IDE с большим набором расширений для Python/Django.

  • Полезные расширения:

    • Python (официальное расширение Microsoft)
    • Pylance (анализатор типов)
    • Django или Django Template support (подсветка шаблонов)
    • Docker (если будет использоваться)
  • Настроим отладку, виртуальное окружение и запуск команд из терминала VS Code.

Примечание: PyCharm — тоже отличный выбор. Но на курсе примеры и инструкции будут под VS Code.

5. База данных — SQLite (и далее PostgreSQL)

  • По умолчанию Django использует SQLite — лёгкая файловая СУБД, идеально подходящая для обучения и небольших проектов.
  • Для продакшена и при масштабировании рекомендуем PostgreSQL — мы обязательно рассмотрим переход на PostgreSQL в более позднем модуле.
  • Инструменты для работы с БД: DBeaver, pgAdmin, но в простых случаях достаточно команд Django и встроенных миграций.

6. Локальный сервер Django — что это такое

  • Django поставляется с небольшим встроенным сервером для разработки. Это не сервер для продакшена, но он удобен для разработки и тестирования.

  • Запуск:

    python manage.py runserver
  • После запуска открой браузер по адресу http://127.0.0.1:8000/ или http://localhost:8000/.

  • Что делает сервер: принимает HTTP-запросы от браузера, передаёт их в ваше Django-приложение, которое формирует ответ (HTML/JSON) и отправляет обратно.


Краткая практическая последовательность

Делаем первые шаги прямо сейчас — проверка и минимальная конфигурация:

  1. Установить Python (если ещё нет).

  2. Создать рабочую папку для курса:

    mkdir django_course
    cd django_course
  3. Создать виртуальное окружение и активировать:

    python -m venv .venv
    source .venv/bin/activate   # macOS / Linux
    .venv\Scripts\activate      # Windows
  4. Установить Django:

    pip install django
  5. Создать новый проект Django:

    django-admin startproject mysite .

    Это создаст базовую структуру: manage.py, папку mysite/ с настройками.

  6. Запустить миграции и встроенный сервер:

    python manage.py migrate
    python manage.py runserver
  7. Открыть в браузере: http://127.0.0.1:8000/. Должна отобразиться стартовая страница Django — значит всё работает.


Полезные пояснения и советы (простыми словами)

  • manage.py — это инструмент для управления проектом: запуск сервера, выполнение миграций, создание суперпользователя, запуск тестов и прочее.

  • Миграции — способ сказать базе данных, как должны выглядеть таблицы в соответствии с моделями Django. Команды: makemigrationsmigrate.

  • Админ-панель — готовый интерфейс для управления моделями. Создаём суперпользователя:

    python manage.py createsuperuser

    Затем заходите на http://127.0.0.1:8000/admin/.

  • Разделение сред: локально можно использовать SQLite; позже для «приближения к продакшену» мы настроим PostgreSQL и покажем, как переключать настройки.


Вопросы

  1. Что такое веб-разработка и какие бывают её основные направления?
  2. Чем бэкенд отличается от фронтенда?
  3. Для чего нужен фреймворк в веб-разработке?
  4. Что делает Django и почему его называют “фреймворком высокого уровня”?
  5. Какие основные задачи Django берет на себя (перечислите хотя бы три)?
  6. Что такое ORM и зачем она нужна?
  7. Что делает команда pip install django?
  8. Как проверить, что Django установлен правильно?
  9. Для чего используется команда python manage.py runserver?
  10. По какому адресу доступен локальный сервер Django по умолчанию?
  11. Какая база данных используется по умолчанию в Django?
  12. Почему для небольших проектов удобно использовать SQLite?
  13. Какие другие базы данных можно подключить к Django, кроме SQLite?
  14. Что делает Django Rest Framework (DRF) и зачем он нужен?
  15. Какая среда разработки будет использоваться в нашем курсе? Почему именно она?
  16. Что такое локальный сервер и зачем он нужен разработчику?
  17. Что делает команда django-admin --version?
  18. Для чего нужен интерпретатор Python в контексте Django-проекта?
  19. Какие инструменты помогают управлять файлами и проектами на компьютере?
  20. Почему Django считается хорошим выбором для начинающих разработчиков?

Домашнее задание к уроку

  1. Установить Python и VS Code (если ещё не установлены).
  2. Создать папку django_course, настроить venv и установить Django.
  3. Создать проект mysite (команда выше), выполнить migrate и запустить runserver.
  4. Создать суперпользователя (createsuperuser) и зайти в админ-панель.
  5. Сделать скриншот стартовой страницы http://127.0.0.1:8000/ и админ-панели — прикрепить к заданию.

Следующий урок