组合键 发送指定信号_Django signal 信号机制的使用

Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作

一.Django中内置的 signal 类型主要包含以下几种

1.Model_signals

3843a97e63f10a1090f21507e64a5026.png

2.Managemeng_signals

e4859ba1f5952a3b21f9ff1d29e00c85.png

3.Request/response_signals

2b640dc2e409214a50fc6a9a71e50650.png

4.Test_signals

77960f5a440d57d0a7ab2570cd5789d8.png

5.Datebase_Wrapperd

f2b0f28d709e95088c1f1b2b14d78c2b.png

二.对于Django内置的信号,仅需注册指定信号,当程序执行相应操作时,系统会自动触发注册函数

1.以 post_save 信号类型进行说明:

在相应的应用(app)目录下的__ init__.py文件中进行定义,(可以另外创建一个.py文件, 再在__init__.py文件导入该文件)

c69435e69cb9a293c3d8f8dd562b0a54.png

创建函数,监听信号, 当信号触发时,进行函数的调用

dccb67e5067350dc4142266fe48501f2.png

2. request_finished 信号

7aeb5a4f7ff46abcfbad2fd3b6fad116.png

这样配置之后,django接收到所有的request请求结束以后,都会调用这个接收器回调函数.

三.进一步补充默认的signals及其参数

模型的(django/db/models/signal.py)

603b60b22430aa594e1858bf2b2585a3.png

用户登录的(django/contrib/auth/signals.py)

83cdbb3c0f455130b986fc70bdad1112.png

关于request请求的(django/core/signals.py)

e2db5babb6ca66b23d1246ff813f860c.png

数据库连接的(django/db/backends/signals.py)

b0fdffbb99dd870d3cc930f85af00778.png

.在个人的实际项目开发中,使用得比较多的信号类型就是django/db/models/signal.py(如:用户注册成功后发送邮件或进行其他操作)以及用户登录的django/contrib/auth/signals.py(用户登录成功后,给用户发送消息). 如果内置的信号类型无法满足需求,可以进行自定义信号, 这里不再赘述.

转自:Django signal 信号机制的使用-侵删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值