Tortoise orm信号实现及使用场景是什么


今天小编给大家分享一下Tortoise orm信号实现及使用场景是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在使用Tortoise操作数据库的时候发现,通过对操作数据库模型加以装饰器,如@pre_save(Model),可以实现对这个模型在savue时,自动调用被装饰的方法,从而实现对模型的一些操作。在此先从官方文档入手,看一下官方的对于模型信号的Example以上代码可直接复制后运行,运行后的结果:signal_pre_save Signal None
post_save Signal True None
signal_pre_save Signal_Save [‘name’]
post_save Signal_Save False [‘name’]
pre_delete Signal_Save
post_delete Signal_Save
可以发现,对模型进行保存和删除时候,都会调用对应的信号方法。免费云主机域名从导包可以得知,tortoise的所有信号方法都在tortoise.signals中。其内部实现的四个信号方法分别是模型的保存后,保存前,删除前,删除后。其内部装饰器代码也十分简单,就是对装饰器中的参数(也就是模型),注册一个监听者,而这个监听者,其实就是被装饰的方法。如上面的官方示例中:而到了Model类中,自然就有一个register_listener方法,定睛一看,上面示例Signal中并没有register_listener方法,所以自然就想到了,这个方法必定在父类Model中。接下来注册后,这个listeners就会一直跟着这个Signal类。只需要在需要操作关键代码的地方,进行调用即可。抛开其他代码,可以看到,在模型save的时候,其实是先执行保存前的信号,然后执行保存后的信号。有了以上的经验,可以自己实现一个信号,比如我打算做个数据处理器的类,我想在这个处理器工作中,监听处理前/后的信号。输出结果:before_process_listener1 (, <__main__.signalmodel object at>) {}
before_process_listener2 (, <__main__.signalmodel object at>) {}
Processing
after_process_listener (, <__main__.signalmodel object at>) {}
以上就是“Tortoise orm信号实现及使用场景是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。

相关推荐: mybatisplus批量更新太慢该怎么解决

这篇文章主要讲解了“mybatisplus批量更新太慢该怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatisplus批量更新太慢该怎么解决”吧!最近使用mybatis-plus的 saveOrU…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/22 10:13
下一篇 05/22 10:14

相关推荐