其他
3分钟看懂Python后端必须知道的Django的信号机制!
概念django自带一套信号机制来帮助我们在框架的不同位置之间传递信息。也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(receivers)。(感觉就很像Qt的信号与槽机制)信号系统包含以下三要素:发送者-信号的发出方信号-信号本身接收者-信号的接受者Django内置了一整套信号,下面是一些比较常用的:在ORM模型的save()方法调用之前或之后发送信号django.db.models.signals.pre_savedjango.db.models.signals.post_save在ORM模型或查询集的delete()方法调用之前或之后发送信号。django.db.models.signals.pre_deletedjango.db.models.signals.post_delete当多对多字段被修改时发送信号。django.db.models.signals.m2m_changed当接收和关闭HTTP请求时发送信号。django.core.signals.request_starteddjango.core.signals.request_finished这就很方便了,想象一下这样一个情景,我们引入了一个第三方的Django库,他会创建模型,我们想要在不修改他的代码的情况下,在他创建模型的时候同时修改其他表的数据,那么这时候信号机制就能派上用场了。简单使用例子信号监听有两种方式,一种是Signal.connect()方法,一种是装饰器。Signal.connect()方法方法原型:Signal.connect(receiver,
2020年4月23日