django 信号

Django的信号调度程序在事件发生时通知应用程序,允许发送者向接收者发送事件通知。例如,当创建用户后,可以触发密码加密或生成Token。信号包括Model信号,如在用户创建后加密密码或自动生成Token。实现时,需在适当位置定义信号接收函数,并在Django启动时加载。用户创建后加密密码涉及在apps/user下创建信号处理文件,而在apps/user/app.py中重写ready方法。若要自动生成用户Token,可监听post_save信号。
摘要由CSDN通过智能技术生成

django存在一个’信号调度程序’, 可以实现当某事件在框架内发生时,通知到我们的应用程序。比如当某个时间(event)发生时允许若干寄件人(sender)通知一组接受者(receivers)

Django includes a “signal dispatcher” which helps allow decoupled applications get notified when actions occur elsewhere in the framework. In a nutshell, signals allow certain senders to notify a set of receivers that some action has taken place. They’re especially useful when many pieces of code may be interested in the same events.

具体比如, 当某个用户被创建后, 会通知某个程序, 创建一个token, 类似于mysql触发器.

Model signals可以分为一下几种:

pre_init 某个实例马上要初始化了
post_init 某个实例已经初始化了
pre_save 个实例即将要保存入库了
post_save 某个实例即已经保存入库了
pre_delete 某个实例即将要删除了
post_delete 某个实例即已经删除了
class_prepared 某个class准备好了
m2m_changed 模型的ManyToManyField改变时触发

使用:
场景1: 创建用户后加密密码(因某种原因存入数据库的是明文)
  1. 在apps/user下新建signals.py
from django.contrib.auth import get_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值