Какие знаешь Middleware в Django
Python
Middle
Без компании
Какие знаешь Middleware в Django
Ответы
Django Middleware — это промежуточные слои, обрабатывающие запросы и ответы. Они выполняются до view и после.
**Основные встроенные Middleware:**
- **SecurityMiddleware** — добавляет HTTPS-заголовки, защита от XSS, CSRF и др.
- **SessionMiddleware** — управляет сессиями пользователей.
- **AuthenticationMiddleware** — добавляет `request.user` для аутентификации.
- **MessageMiddleware** — работа с одноразовыми сообщениями (например, уведомления).
- **CSRFMiddleware** — защита от CSRF-атак.
**Пример кастомного Middleware:**
```
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print("До view")
response = self.get_response(request)
print("После view")
return response
```
**Регистрация в `settings.py`:**
```
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'myapp.middleware.SimpleMiddleware',
# ...
]
```
Middleware работают в порядке их объявления.