其实可以理解为django内部的钩子,当某一个事件发生时,其它程序会触发并对其作出相关反应,通过signal回调处理函数(receivers),从而更大程度的解耦我们的项目
1 @receiver(request_started)
2 def requeststarted(sender,**kwargs):
3 print(sender,'这是request_started')
4 request_started.connect(requeststarted)#请求完成信号
没有内置这种信号,用户可自定义,与内置信号使用的第一种方法相同
1 bus_comming = django.dispatch.Signal(providing_args=['plate_numbers'])
2
3 def callback(sender,**kwargs):
4 print(sender,kwargs,'这是自定义信号')
5
6 bus_comming.connect(callback)
7 bus_comming.send(sender='lijingbo',plate_numbers=666)