Ответ
В архитектуре Django MTV (Model-Template-View) Template (Шаблон) — это компонент, отвечающий за представление данных и генерацию пользовательского интерфейса, чаще всего HTML-страниц.
Его основная задача — отделить логику обработки данных (View) от их визуального отображения. Это позволяет frontend-разработчикам и дизайнерам работать над внешним видом, не вникая в Python-код.
Шаблоны используют специальный синтаксис Django Template Language (DTL) для вставки динамических данных:
- Переменные:
{{ user.name }}
— для вывода значений. - Теги:
{% for item in item_list %}
— для управляющих конструкций, таких как циклы и условия. - Фильтры:
{{ post.created_at|date:"D d M Y" }}
— для форматирования переменных.
Пример шаблона:
<!DOCTYPE html>
<html>
<head>
<title>{{ page_title }}</title>
</head>
<body>
<h1>Статьи</h1>
<ul>
{% for article in articles %}
<li>{{ article.title }} - опубликовано {{ article.pub_date|date:"d.m.Y" }}</li>
{% empty %}
<li>Статей пока нет.</li>
{% endfor %}
</ul>
</body>
</html>
Ключевые преимущества использования шаблонов:
- Разделение ответственностей: Backend-логика остается во
views.py
, а верстка — в.html
файлах. - Повторное использование: Механизмы наследования (
{% extends 'base.html' %}
) и включения ({% include 'sidebar.html' %}
) позволяют избежать дублирования кода. - Безопасность: Django автоматически экранирует переменные, предотвращая XSS-атаки.