Назад к вопросам
Middle
97
questionbank
Что такое контекстный процессор в Django?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Контекстный процессор в Django — это вызываемая функция (callback function), которая принимает HTTP-запрос в качестве аргумента и возвращает словарь переменных. Этот словарь добавляется к контексту каждого шаблона, обрабатываемого этим запросом.
Они используются для добавления общих данных ко всем шаблонам без необходимости явно передавать эти данные в каждом представлении.
Наиболее распространенные примеры использования:
- Добавление данных аутентифицированного пользователя.
- Добавление настроек сайта (например, название, домен).
- Добавление информации о текущем запросе (например, путь).
Контекстные процессоры подключаются в настройках Django:
# settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
# Сюда добавляются пользовательские процессоры
#'my_app.context_processors.my_custom_processor',
],
},
},
]
Пример пользовательского контекстного процессора:
# my_app/context_processors.py
def my_custom_processor(request):
# Функция принимает request
return {
'site_name': 'My Awesome Site', # Возвращает словарь
'current_year': 2023,
}
После подключения в settings.py, переменные site_name и current_year будут доступны в любом шаблоне:
<!-- my_template.html -->
<p>Добро пожаловать на {{ site_name }}!</p>
<p>© {{ current_year }}</p>