📝 Django

Загрузка шаблонов в Django

P
Автор
PyLand Team
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
269
🌿
Уровень
Средний

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

Настройка поиска шаблонов

# settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],  # папка шаблонов проекта
        'APP_DIRS': True,  # искать в <app>/templates/ каждого приложения
        'OPTIONS': {
            'context_processors': [...],
        },
    },
]

Структура папок

mysite/
├── templates/          # DIRS — общие шаблоны
│   └── base.html
├── tasks/
│   └── templates/      # APP_DIRS — шаблоны приложения
│       └── tasks/
│           ├── list.html
│           └── detail.html

Рекомендуется: tasks/templates/tasks/ чтобы избежать конфликтов имён между приложениями.

Использование в view

# По пути от DIRS или app/templates/
return render(request, 'tasks/list.html', context)
return render(request, 'base.html', context)

Наследование шаблонов

<!-- templates/base.html -->
<!DOCTYPE html>
<html>
<head><title>{% block title %}Сайт{% endblock %}</title></head>
<body>
  {% block content %}{% endblock %}
</body>
</html>
<!-- tasks/templates/tasks/list.html -->
{% extends 'base.html' %}

{% block title %}Задачи{% endblock %}

{% block content %}
  <h1>Список задач</h1>
{% endblock %}

include — вставка фрагментов

<!-- Вставить другой шаблон -->
{% include 'partials/task_card.html' with task=task %}

<!-- tasks/templates/partials/task_card.html -->
<div class="card">
  <h3>{{ task.title }}</h3>
  <span>{{ task.get_status_display }}</span>
</div>

Отладка поиска шаблонов

# Если шаблон не найден, Django выдаст TemplateDoesNotExist
# с указанием всех путей, где искал

В DEBUG=True ошибка показывает список поиска.

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Поиск в Django

Поиск в Django можно начать с простых ORM-фильтров, а для ранжирования и полнотекстового поиска использовать...

📅 30.06.2026 👁️ 277
📝

Swagger документация с drf-spectacular

drf-spectacular генерирует OpenAPI 3.0 схему и Swagger UI для DRF.

📅 30.06.2026 👁️ 561
📝

settings.py: настройки Django

settings.py — центральный конфигурационный файл Django-проекта.

📅 30.06.2026 👁️ 314
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Django RequestLab: от HTTP до безопасного продакшена Открыть программу курса