天天看点

Django 信号处理

Django里面还提供了一个功能叫做信号。信号类似触发器,可以指定在某个事件发生前后自动执行对应的函数。

Django自带了一些信号,如下所示:

如果需要使用的话,只需要导入对应的类,然后自己创建一个函数,再把自己的函数绑定到对应的信号就会自动执行了(这个过程叫做注册信号)。

例1:

创建一个sg.py,可以看见注册信号有2种方式写都是可以的,f1和f2用的第一种;f3用的第二种

我把他直接导入到_init_.py里面这样运行的时候自动执行

Views.py

自己写的一个视图函数

执行结果,在获取request之前,触发了f2,然后每次保存数据都触发了f1,然后通过send触发了一个自定义的信号,完成request之后,触发了f3