В чем разница между сигналом и промежуточным ПО в Django?

Я не понимаю, в чем разница между этими двумя функциями в Django.

Вот - это делать что-то до или после запроса/ответа.

Так же, как контекстный переключатель или декоратор.

Может ли кто-нибудь сказать мне, как правильно использовать эти две функции Django.

Согласно документации Django:

Сигналы:

Django включает "диспетчер сигналов", который помогает развязанным приложениям получать уведомления о действиях, происходящих в других частях фреймворка. В двух словах, сигналы позволяют определенным отправителям уведомлять набор получателей о том, что произошло какое-то действие. Они особенно полезны, когда многие части кода могут быть заинтересованы в одних и тех же событиях.

Средние программы:

Middleware - это каркас крючков для обработки запросов/ответов Django. Это легкая, низкоуровневая система "плагинов" для глобального изменения входа или выхода Django.

TLDR;

  • Сигналы используются для отправки информации, которую будут слушать получатели, например, выполнение некоторого кода перед сохранением чего-либо в базе данных или выполнение некоторого кода после отправки электронного письма.
  • Middlewares - это классы, которые подключаются к HTTP запросам/ответам.
Вернуться на верх