位置: 编程技术 - 正文

利用信号如何监控Django模型对象字段值的变化详解(信号监控设备是什么)

编辑:rootadmin

推荐整理分享利用信号如何监控Django模型对象字段值的变化详解(信号监控设备是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:通过信号,利用信号如何监控手机,信号监听,信号监视器,利用信号如何监控手机,利用信号如何监控手机,利用信号如何监测电压,利用信号如何监测电压,内容如对您有帮助,希望把文章链接给更多的朋友!

django信号系统

django自带一套信号发射系统来帮助我们在框架的不同位置传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)推送给一组接受者(receivers).信号系统在我们多处代码与同一个事件相关是特别有用.

既然是信号系统,那么必须包含以下要素:

 1. 发送者-谁发送了信号

 2. 信号-发送的信号本身

 3. 接收者-信号是发给谁的

Django 信号 (Signals) 的功能类似于 WordPress 的动作 (action),用于为项目全局增加事件的广播 (dispatch) 与接收 (receive) 机制。其中,灵活使用其内置的模型信号 (Model Signals) 的接收功能就可以监控大部分模型对象 (Model instances) 的变化。因为不需要修改模型本身的代码,在进行跨应用 (App) 监控时有低耦合的优势。

基本用法

利用信号如何监控Django模型对象字段值的变化详解(信号监控设备是什么)

信号的基本用法官方文档上的 主题 与 参考 上已经有详细描述。本文只提几个要点(本文环境:Django 1.8 & Python 3.4):

代码组织

官方推荐在应用目录下新增一个 signals.py 文件,同时参考官方文档的 应用配置 节中自定义应用配置 (AppConfig) ,重载应用配置类的 run 方法,在该方法内调用 from . import signals

接收信号

推荐使用 django.dispatch.receiver 这个装饰器进行信号的接收:

从代码可读性的角度来讲,建议一个接收函数只做一件事。

监控特定字段 (field) 值的变化

从上一段代码可以知道,通过接收模型 post_save 信号,可以得知发生了保存模型对象的操作,并且还可以区分出是创建了模型对象还是更新了模型对象。然而,模型信号并没有提供针对特定字段值变化的广播功能,虽然该信号提供了 update_fields 参数,但是并不能证明在该参数中的字段名的字段值一定发生了变化,所以我们要采用一个结合 post_init 信号的变通方法。

举一个例子:当学生名字发生改变之后发布一条公告。

简单的说就是在该模型广播 post_init 信号的时候,在模型对象中缓存当前的字段值;在模型广播 post_save (或 pre_save )的时候,比较该模型对象的当前的字段值与缓存的字段值,如果不相同则认为该字段值发生了变化。

总结

标签: 信号监控设备是什么

本文链接地址:https://www.jiuchutong.com/biancheng/375450.html 转载请保留说明!

上一篇:深入理解Python中range和xrange的区别(浅谈python)

下一篇:Python标准模块--ContextManager上下文管理器的具体用法(python标准模板库)

  • 工会经费税前扣除比例是多少
  • 所得税月度申报
  • 怎样在网上申报营业执照年检
  • 税收工资什么意思
  • 当年亏损额为什么不能填?
  • 固定资产投资子公司交增值税税吗
  • 环保税申报表怎么填制
  • 报销费用明细和发票
  • 委托开发的定义
  • 报销单第一页写不完
  • 资产负债表中无形资产是原值还是净值
  • 网站服务器使用什么IP地址
  • 融资协议如何缴纳印花税
  • 淘宝电商会计交税怎么交?
  • 商贸企业仓储服务有哪些
  • 收代扣代缴个税手续费会计分录
  • 房地产企业资金监管账户
  • 资本公积转增资本什么意思
  • 筹资活动流入的现金是内源融资吗
  • 商业企业向供货方收取的返还收入
  • 公司向股东借款需要股东会决议吗
  • win11壁纸设置
  • 苹果电脑mac设备在哪里
  • 销售人员报销差旅费怎么报税
  • 往年亏损,今年盈利,是否计提盈余公积
  • 小规模纳税人销售货物税率是多少
  • Win10怎么显示文件类型
  • 定额征收怎么交税
  • 解决肚子胀气最快方法
  • 企业应交税费的会计分录
  • 装修费计入固定资产还是长期待摊
  • gcn时间序列
  • emacs scheme
  • Spring Boot 3.0 正式发布,王炸!!
  • 出差费用计入
  • 基本户 变更
  • 毛利的计算公式为
  • okr开源软件
  • mysql深度解析
  • 专票作废扣税吗
  • 固定资产改扩建和大修理的区别
  • 无法支付款项是否缴纳增值税
  • sql纵表转横表
  • sql2008数据库存放位置
  • 非营利组织接受捐赠收入要交企业所得税吗
  • 律师事务所收到专票能抵扣吗合法吗
  • 增值税专用发票抵扣期限
  • 上年度记错科目怎么调整
  • 应收票据的分录怎么做
  • 应收账款冲销是什么意思
  • 购买原材料例题
  • 从事国家重点扶持的公共基础项目
  • 长期借款和长期贷款一样吗
  • 增值税发票红冲和作废的区别
  • 关于外贸企业出口的规定
  • 塑料制品厂设计
  • 公司注销固定资产清理怎么做账务处理
  • 什么是速动比率的概念
  • 建账的要点及应注意的问题
  • mysql数据监控
  • fedora最新版本
  • win10的打开方式
  • apache是什么文件
  • win10玩上古世纪闪退
  • win10打开资源管理器很慢
  • Win10 Mobile 10586.71或时最适合WP8.1升级的Win10的版本
  • win7如何卸载打印机驱动程序
  • python中的json
  • unity 3d教程
  • js array api
  • jquery插件怎么用到自己的网站
  • 可以在windows环境下双击而直接放映
  • 精仿和媲美专柜有什么区别
  • 安卓圆角矩形图标
  • python中如何抛出异常
  • 广东省地方税务局发票查询
  • 上海社保转出后查不到记录
  • 河北保定地税局官网
  • 粤泰股份公司
  • 税务稽查机构
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设