Что такое Django
Зачем нужен фреймворк
Чтобы сделать динамический сайт с нуля, придётся решить кучу задач: разобрать HTTP-запрос, понять, какую страницу хочет пользователь, подключиться к базе данных, защититься от взлома, проверить пароль, собрать HTML…
Веб-фреймворк — набор готовых инструментов, который решает эти типовые задачи. Вы пишете только логику своего приложения.
Django в двух словах
Django — бесплатный фреймворк с открытым исходным кодом на Python. Его создали в 2003–2005 годах разработчики новостного сайта в Канзасе, которым нужно было очень быстро выпускать новые разделы. Отсюда девиз:
«The web framework for perfectionists with deadlines» — веб-фреймворк для перфекционистов с дедлайнами.
На Django работают Instagram, Pinterest, Mozilla, Disqus, сайты NASA и тысячи других.
Философия
- Batteries included («батарейки в комплекте»). Всё необходимое уже есть: ORM, админка, аутентификация, формы, шаблоны, кэширование, защита от CSRF/XSS/SQL-инъекций, локализация.
- DRY — Don't Repeat Yourself. Описали модель один раз — и из неё получили таблицу в базе, форму, админку и API.
- Явное лучше неявного — принцип из «Дзена Python».
- Слабая связанность. Части фреймворка независимы: можно заменить шаблонизатор или базу данных.
Что внутри
| Компонент | Что делает |
|---|---|
| ORM | Работа с базой данных через Python-классы вместо SQL |
| Миграции | Автоматическое изменение структуры БД при изменении моделей |
| URL dispatcher | Сопоставляет адрес страницы с кодом, который её обрабатывает |
| Views | Функции/классы, принимающие запрос и возвращающие ответ |
| Шаблоны | HTML со вставками переменных, циклов и условий |
| Формы | Генерация HTML-форм, валидация данных |
| Admin | Готовая панель управления данными |
| Auth | Пользователи, группы, права, вход/выход |
Проект и приложения
В Django есть два важных понятия:
- Проект — весь сайт целиком: настройки, главный файл маршрутов.
- Приложение (app) — отдельный модуль с определённой функцией: блог, магазин, профили. Приложения можно переиспользовать между проектами.
mysite/ ← проект
├── manage.py
├── mysite/ ← настройки проекта
│ ├── settings.py
│ └── urls.py
├── blog/ ← приложение «блог»
└── accounts/ ← приложение «аккаунты»
Кстати, сайт, на котором вы сейчас учитесь, тоже так устроен: приложение courses отвечает за курсы и задания, accounts — за регистрацию.
Путь запроса
Браузер ──HTTP──▶ Веб-сервер ──▶ Django
│
middleware (сессии, безопасность)
│
urls.py: какой view вызвать?
│
view: логика ─▶ models ─▶ БД
│
template: собрать HTML
│
Браузер ◀──HTTP── HttpResponse ◀───┘
Каждый следующий урок будет разбирать один из этих блоков подробнее.
Итог
- Django — «фреймворк с батарейками» на Python для быстрой разработки надёжных сайтов.
- Главные принципы: DRY, явное лучше неявного, слабая связанность.
- Сайт = проект, состоящий из приложений.
- Запрос проходит путь: URL → view → модели/шаблоны → ответ.
Практика решено 0 из 5
На каком языке программирования написан Django?
Что входит в Django «из коробки», без установки сторонних пакетов?
Как расшифровывается принцип DRY, которому следует Django? (три английских слова)
Расставьте шаги обработки запроса в Django.
- Вызывается функция-представление (view)
- View получает данные через модели и рендерит шаблон
-
Диспетчер URL находит подходящий маршрут в
urls.py -
Веб-сервер передаёт запрос в Django, создаётся объект
HttpRequest -
Django возвращает объект
HttpResponse - Запрос проходит через middleware
Какой из этих сайтов изначально построен на Django?
Войдите, чтобы отмечать пройденные уроки.