Ответ
В Django контекст (context) — это словарь данных, который передаётся из view в шаблон для рендеринга. Его основная цель — сделать переменные доступными в шаблоне, обеспечивая разделение логики представления от данных.
Почему это важно: Контекст позволяет шаблонам динамически отображать информацию, подготовленную во view, без прямого доступа к логике приложения, что улучшает читаемость и поддерживаемость кода.
Обычно контекст передаётся как аргумент context в функции render().
Пример использования:
from django.shortcuts import render
def my_view(request):
data = {
'title': 'Главная страница',
'items': ['Item 1', 'Item 2', 'Item 3'],
'user_logged_in': True
}
return render(request, 'template.html', data)
В шаблоне template.html эти данные доступны по ключам словаря:
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
{% if user_logged_in %}
<h1>Добро пожаловать, {{ title }}!</h1>
{% else %}
<h1>{{ title }}</h1>
{% endif %}
<h2>Список элементов:</h2>
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
</body>
</html>
Контекстные процессоры: Это функции, которые автоматически добавляют общие данные (например, объект request, информацию о текущем пользователе user) в контекст всех шаблонов. Они настраиваются в settings.TEMPLATES.OPTIONS.context_processors и помогают избежать дублирования кода для передачи одних и тех же данных в каждый view.