位置: 编程技术 - 正文

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

  • 收取承包费如何交税
  • 土地增值税要计增值税吗
  • 税法的分类都有什么
  • 股权转让主要交什么税
  • 营利性幼儿园怎样登记
  • 个体户一年能开多少普票
  • 差旅费的现金流
  • 银行证书年费计入什么科目
  • 小微企业亏损还用缴残保金吗
  • 小规模纳税人未开票收入填在哪里
  • 年初数和年末数审计报告不一致
  • 房地产出租是否缴纳土地增值税
  • 盘盈的固定资产计入什么科目
  • 企业管理咨询有限公司简介
  • 物业公司哪些费用需要公示
  • 负数发票跨月怎么重开
  • 收到银行的贷款
  • 大额存款提前取一部分怎么计息
  • 新企业如何办理税务登记
  • 税控盘月度统计表怎么打印
  • 年底员工聚餐
  • 开通税种需要带发票吗
  • 销售返点的账务处理及税务处理
  • 利息支出应计入
  • 记账凭证需要哪些人员签章
  • 城市维护建设税属于什么税种
  • 发出商品发生损失
  • 如何打印word文档手机上
  • 销售免费样品账务处理
  • 不起眼的暴利小生意农村
  • win7如何更换开机密码
  • 跨年销货退回账务处理
  • 绿化园艺
  • 路由器增强型
  • 企业取得的搬迁补贴
  • 大前端2021
  • 垃圾处理费计提吗
  • 图书免税?
  • 长期待摊费用属于调整账户吗
  • 报表中的盈余公积怎么算
  • 预缴税款计算表填0.01行吗
  • 企业长期资金来源有哪些
  • 投标报名费如何缴纳
  • 办公室租金产生的税率
  • 冲销未开票收入还需要申报吗
  • 来料加工和进料加工的相同之处
  • 到银行货款现金怎么货
  • 销售产品收到现款120元是什么制
  • 企业叉车折旧年限几年
  • 小微企业未开票收入怎么申报
  • 什么是稳岗补贴有多少
  • 年底所得税的会计分录
  • 营业成本包括哪些会计科目
  • 商业企业注销应检查哪方面的问题
  • 一个分页存储过多的文件
  • mysql中字符串类型
  • sql语句提取字符串中数字
  • xp如何给文件夹加密码
  • 笔记本电脑的触摸板怎么开启和关闭
  • solaris如何关闭usb接口
  • Win7笔记本怎么连接wifi
  • creative cloud怎么用
  • launcheflc.exe什么意思
  • 华硕fx80g装系统
  • centos划分分区
  • win7系统怎么备份文件
  • win1020th2
  • linux命令行图片
  • win10登陆背景修改器
  • android项目总结
  • jQuery+ajax的资源回收处理机制分析
  • win2000停止服务
  • Python内置函数的应用操作
  • unity总结
  • unity 5.4
  • js扩展名是什么文件
  • 深入理解新发展理念,推进供给侧结构性改革
  • 多个javascript 合并
  • 如何开具红字发票明细
  • 普通手写发票税点多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设