Какую роль выполняет Template в архитектуре Django MTV?

«Какую роль выполняет Template в архитектуре Django MTV?» — вопрос из категории Django, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В архитектуре 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" }}` — для форматирования переменных. **Пример шаблона:** ```html {{ page_title }}

Статьи

    {% for article in articles %}
  • {{ article.title }} - опубликовано {{ article.pub_date|date:"d.m.Y" }}
  • {% empty %}
  • Статей пока нет.
  • {% endfor %}
``` **Ключевые преимущества использования шаблонов:** 1. **Разделение ответственностей**: Backend-логика остается во `views.py`, а верстка — в `.html` файлах. 2. **Повторное использование**: Механизмы наследования (`{% extends 'base.html' %}`) и включения (`{% include 'sidebar.html' %}`) позволяют избежать дублирования кода. 3. **Безопасность**: Django автоматически экранирует переменные, предотвращая XSS-атаки.