django中信号
# 信号的理解 在某个行为进行的某个阶段给这个行为添加一个附带的行为 # 相关api ## 数据表 pre_init # django的model执行其构造方法前,自动触发 post_init # django的model执行其构造方法后,自动触发 pre_save # djangod的model对象保存前,自动触发 post_save # django的model对象保存后,自动触发 pre_delete # django的model对象删除前,自动触发 post_delete # django的model对象删除后,自动触发 m2m_changed # django的model中使用m2m字段操作第三表(add,remove,clear)前后,自动触发 class_prepared # 程序启动时,检测已注册的app中的model类,对于每一个类,自动触发 ## migrate命令 pre_migrate # 执行migrate前,触发 post_migrate # 执行migrate后,触发 ## url请求相关 request_started # 请求到来前,触发 request_finished # 请求结束后,触发 got_request_exception # 请求异常后,触发 ## 测试 setting_changed # 使用test测试修改配置文件,触发 template_rendered # 使用test测试渲染模板时,触发 ## 数据库 connection_created # 创建数据库连接时,触发 # 实际应用 from django.db.models.signals import pre_save from django.dispatch import receiver @receiver(pre_save) def do_something(sender, **kwargs): print("i'am doing it now!") 上面例子通过receiver装饰器将do_something函数添加到了sender对象在保存之前必须做的事情的清单里面,也就是说任何一个sender对象在被保存进数据库之前肯定会在后台打印一句i'am doing it now! 可能这里对sender具体指的谁不是很明确,这里明确强调下,如果receiver装饰器中没有额外对sender参数进行声明,sender代表当前app下的所有数据模型 既然说了receiver中也可以指定参数,那就是说信号也是可以针对某些具体的数据模型进行信号接受的 from django.db.models.signals import pre_save from django.dispatch import receiver from myapp.models import MyModel @receiver(pre_save, sender=MyModel) # pre_save指定信号触发类型,sender指定只有MyModel模型发出的信号会被receiver接受并运行下面逻辑 def my_handler(sender, **kwargs): ...
__EOF__

本文作者:404 Not Found
本文链接:https://www.cnblogs.com/weiweivip666/p/15609025.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
本文链接:https://www.cnblogs.com/weiweivip666/p/15609025.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人