В чем разница между сигналом и промежуточным ПО в Django?
Я не понимаю, в чем разница между этими двумя функциями в Django.
Вот - это делать что-то до или после запроса/ответа.
Так же, как контекстный переключатель или декоратор.
Может ли кто-нибудь сказать мне, как правильно использовать эти две функции Django.
Согласно документации Django:
Сигналы:
Django включает "диспетчер сигналов", который помогает развязанным приложениям получать уведомления о действиях, происходящих в других частях фреймворка. В двух словах, сигналы позволяют определенным отправителям уведомлять набор получателей о том, что произошло какое-то действие. Они особенно полезны, когда многие части кода могут быть заинтересованы в одних и тех же событиях.
Средние программы:
Middleware - это каркас крючков для обработки запросов/ответов Django. Это легкая, низкоуровневая система "плагинов" для глобального изменения входа или выхода Django.
TLDR;
- Сигналы используются для отправки информации, которую будут слушать получатели, например, выполнение некоторого кода перед сохранением чего-либо в базе данных или выполнение некоторого кода после отправки электронного письма.
- Middlewares - это классы, которые подключаются к HTTP запросам/ответам.