django的信号机制其实还是相当有用的,记得有次业务需求是要在数据库变动前后添加日志,很多人第一时间想到的是用装饰器,包括我也是,后来想想,其实设置信号就可以早早完事了。
什么是信号?
django中的信号也称signal,用于在框架执行操作时解耦。通俗点讲,就是框架发生一些动作之前或之后,可以自动根据我们提前设置好的signal去执行对应函数。熟悉数据库的小伙伴应该知道“触发器”吧?就是类似的功能。
django内置的信号
其实django已经帮我们内置好了相当“够用”的信号了。如下:
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
Model signals:(Model信号)
pre_init # django的modal执行其构造方法前
|