Короткий ответ
Шаблон в Django — это текстовый документ, обычно HTML-файл, который задаёт внешний вид и структуру страницы сайта; это презентационный компонент архитектуры MVT. Внутри HTML шаблон использует переменные в {{ }} и логические теги вроде {% if %} и {% for %}, чтобы подставлять данные динамически.
Как это работает подробнее
Представление передаёт данные в шаблон, а язык шаблонов Django (DTL) формирует итоговый HTML для пользователя.
- Синтаксис. Переменные записываются в двойных фигурных скобках — {{ variable }}, логика — в тегах {% tag %}, например {% if %} и {% for %}.
- Наследование. Базовый шаблон объявляет блоки {% block %}, а дочерние расширяют его через {% extends %}, избегая дублирования разметки.
- Подключение. Шаблоны лежат в едином каталоге на уровне проекта или в каталоге templates внутри каждого приложения.
- Движки. Помимо стандартного DTL в Django можно применять альтернативный движок Jinja2.
- Разделение. Django — преимущественно бэкенд-фреймворк, поэтому шаблоны отвечают только за представление и отделены от бизнес-логики.
Пример кода
Шаблон Django со списком студентов
<ul>
{% for student in students %}
<li>{{ student.name }}</li>
{% endfor %}
</ul>Что использовать на практике
- Наследование. Строй страницы на базовом шаблоне с {% block %} и {% extends %}, чтобы не дублировать разметку.
- Презентационный слой. Держи шаблоны тонкими и отделёнными от бизнес-логики приложения.
- Jinja2. При необходимости подключай альтернативный движок вместо стандартного DTL.
- Для JSON. В DRF шаблоны не используют — ответы JSON формируют сериализаторы напрямую.