Django中提供了“信号调度”,用于在框架执行操作时解耦。通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。
相当于我们创建了一个hook。
1. Django的内置信号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
通常放置于和project同名的__init__.py中,在使用的时候,仅需注册指定账号,则在被触发时,会自动执行
2. 自定义信号
除了默认的信号外,还可以自定义一些信号。需要以下三个步骤
2.1 定义信号
1 2 |
|
2.2 注册信号
1 2 3 4 5 |
|
2.3 触发信号
1 2 3 |
|
由于内置信号的触发者已经集成到Django中,所以其会自动调用,而对于自定义信号则需要开发者在任意位置触发。即在任意位置,导入这个函数,然后进行方法调用