Что такое контекст в Django views?

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

Ответ

В Django **контекст** (context) — это **словарь** данных, который передаётся из **view** в **шаблон** для рендеринга. Его основная цель — сделать переменные доступными в шаблоне, обеспечивая разделение логики представления от данных. **Почему это важно:** Контекст позволяет шаблонам динамически отображать информацию, подготовленную во view, без прямого доступа к логике приложения, что улучшает читаемость и поддерживаемость кода. Обычно контекст передаётся как аргумент `context` в функции `render()`. **Пример использования:** ```python 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` эти данные доступны по ключам словаря: ```django-html {{ title }} {% if user_logged_in %}

Добро пожаловать, {{ title }}!

{% else %}

{{ title }}

{% endif %}

Список элементов:

    {% for item in items %}
  • {{ item }}
  • {% endfor %}
``` **Контекстные процессоры:** Это функции, которые автоматически добавляют общие данные (например, объект `request`, информацию о текущем пользователе `user`) в контекст **всех** шаблонов. Они настраиваются в `settings.TEMPLATES.OPTIONS.context_processors` и помогают избежать дублирования кода для передачи одних и тех же данных в каждый view.