位置: 编程技术 - 正文

利用信号如何监控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标准模板库)

  • 空调维修保养征收什么税?
  • 补提上年度所得税影响本年所得税吗
  • 开具发票时如何选择对应的商品分类编码?
  • 期货交易非法经营
  • 哪些补贴可以不交个税
  • 供暖的配套费是不是开口费
  • 应付账款坏账处理分录怎么写
  • 咨询费发票怎么入账
  • 企业开办费用的预算
  • 老板买增票财务怎么做账
  • 企业核税需要什么资料
  • 餐饮公司收到的拍摄服务票做什么费用
  • 不交增值税当月还需要计提税金吗?
  • 分公司税务是独立核算还是非独立
  • 收到保险公司财产理赔款怎么做账
  • 个人境外收入如何开发票
  • 销售额没有达到要求企业采取措施
  • 税务行政强制行为遵循的原则
  • 丧失控制权合并报表内部交易抵消
  • 受托加工物资算资产吗
  • 4s店以车换车怎么算的
  • 买股票的分红怎么拿
  • 因质量问题扣款协议
  • mac菜单栏设置在哪里
  • 如何使用腾讯手机管家
  • 小规模纳税人销售自己使用过的固定资产税率
  • 事业编党费如何核算
  • win10重启按什么键重置
  • php导入
  • linux中qq怎么添加快捷键启动功能?
  • php到底是什么
  • 电脑右下角总是弹出广告
  • 外汇延期收款办理操作指南
  • 绿萝 用什么土
  • 应纳税所得税计算公式
  • apache安装与配置windows
  • 在缴纳企业所得税的情形
  • 加拿大西北部的首都
  • 收到银行开具的手续费的专票会计分录
  • 购买固定资产后如何处理
  • 城建税教育费附加什么时候交
  • next frame
  • tftp传输命令
  • 普票专票的销售额怎么理解
  • 实收资本确认时间什么入账
  • 公司购买理财产品
  • 开具农产品收购发票需要什么资料
  • 出纳造工资表吗
  • 酒店低值易耗品怎么摊销
  • 织梦商城
  • 织梦cms怎么样
  • 税率减按1.5%计算是什么意思
  • 企业回购本公司股票会导致所有者权益增加
  • Centos5.5中安装Mysql5.5过程分享
  • 合作社增值税免税项目
  • 物流公司挂靠会计处理?
  • 附加税的计税依据是增值税实际缴纳税款吗
  • 加油吃饭开的发票抵什么税
  • 工资的计算方法有几种
  • 记账发生错账怎么办
  • ms sql mysql
  • win7安装mysql8.0.17
  • 无线网络找不到证书
  • aeadisrv.exe
  • win10系统预览版
  • xp sp3精简版
  • squid服务器配置
  • ssh permission denied password
  • 怎么恢复手机桌面时间和日期
  • 随机游戏插件怎么使用
  • 红宝书csv
  • css如何把图片重叠在一起
  • linux如何查看当前shell
  • mongoose python
  • jquery中常用动画方法有哪些
  • python中的urllib
  • javascript数据
  • jquery on()
  • 江苏企业所得税税率2023
  • 发票验旧后还能开票吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设