page contents

说说看Django信号(Signals)的工作原理, 主要应用场景及内置信号?

轩辕小不懂 发布于 2022-07-06 14:29
阅读 544
收藏 0
分类:框架系列
3874
Nen
Nen
- 程序员

Django 提供一个了“信号分发器”机制,允许解耦的应用在框架的其它地方发生操作时会被通知到。 通俗而讲Django信号的工作原理就是当某个事件发生的时候会发出一个信号(signals), 而监听这个信号的函数(receivers)就会立即执行。Django信号的应用场景很多,尤其是用于不同模型或程序间的联动。常见例子包括创建User对象实例时创建一对一关系的UserProfile对象实例,或者每当用户下订单时触发给管理员发邮件的动作。

Django内置信号包括:

django.db.models.signals.pre_save & post_save在模型调用 save()方法之前或之后发送。

django.db.models.signals.pre_init& post_init在模型调用_init_方法之前或之后发送。

django.db.models.signals.pre_delete & post_delete在模型调用delete()方法或查询集调用delete() 方法之前或之后发送。

django.db.models.signals.m2m_changed在模型多对多关系改变后发送。

django.core.signals.request_started & request_finished Django建立或关闭HTTP 请求时发送。

请先 登录 后评论