位置: 编程技术 - 正文

详解Python的Flask框架中的signals信号机制(python+flask)

编辑:rootadmin

推荐整理分享详解Python的Flask框架中的signals信号机制(python+flask),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python3 flask,python3 flask,python中的flask,python flask django,python3 flask,python中的flask,python flask快速入门与进阶,python中的flask,内容如对您有帮助,希望把文章链接给更多的朋友!

Flask 提供了信号(Signals)功能,是一种消息分发机制。类似于钩子(Hooks)。使用信号功能可以降低程序的耦合,分解复杂的业务模型。例如在更新了产品数据后,可以发送一个信号。当有需要对产品数据进行处理的功能时,就可以捕获信号进行处理。比如要建立产品缓存,或是更新搜索索引等。

定义信号

Flask 信号功能使用了 Blinker 模块,所以需要先安装 Blinker 模块

定义一个信号:

也可以使用 Flask 包装的 singles 对象:

发送信号

发送信号需要带上 app 实例方法,示例如下:

app 后面可以添加要传递的参数,但必须以 name=value 的格式,不支持使用单个变量名的方式。

收接信号

接收信号可以使用 connect_via 装饰器函数:

Flask 中有以下核心信号:

1.flask.template_rendered

这个信号发送于一个模板被渲染成功后。信号传递的template是模板的实例,context是环境对象是一个字典。

订阅示例:

2.flask.request_started

这个信号发送于请求开始之前,且请求环境设置完成之后。因为请求环境已经绑定, 所以订阅者可以用标准的全局代理,如 request 来操作请求。

订阅示例:

这个信号发送于向客户端发送响应之前。信号传递的response为将要发送的响应。

详解Python的Flask框架中的signals信号机制(python+flask)

订阅示例:

这个信号发送于请求进行中发生异常的时候。它的发送 早于 标准异常处理介于。 在调试模式下,虽然没有异常处理,但发生异常时也发送这个信号。信号传递的exception是异常对象。

订阅示例:

这个信号发送于请求崩溃的时候,不管是否引发异常。目前,侦听此信号的函数在一般 崩溃处理器后调用,但是没有什么东西可用。

订阅示例:

在 Flask 版本 0.9 中,这还会传递一个exc关键字参数,如果这个参数存在的话。 这个参数是引发崩溃的异常的引用。

3.flask.appcontext_tearing_down

当应用环境崩溃时发送这个信号。这个信号总是会发送,甚至是因为一个异常引发的 崩溃。侦听这个信号的函数会在常规崩溃处理器后被调用,但是你无法回馈这个信号。

订阅示例:

这还会传递一个exc关键字参数,如果这个参数存在的话。这个参数是引发崩溃的 异常的引用。

4.flask.appcontext_pushed

当一个应用的环境被压入时,应用会发送这个信号。这个信号通常用于在单元测试中 临时钩接信息。例如可以用于改变g对象中现存的资源。

用法示例:

在测试代码中这样写:

5.appcontext_popped

当一个应用的环境被弹出时,应用会发送这个信号。这个信号通常写成appcontext_tearing_down 信号。

6.flask.message_flashed

当应用闪现一个消息时会发出这个信号。message`参数是消息内容, `category参数是消息类别。

订阅示例:

小结信号可以让你在一瞬间安全地订阅它们。例如,这些临时的订阅对测试很有帮助。使用信号时,不要让信号订阅者(接收者)发生异常,因为异常会造成程序中断。

Python的Django框架中消息通知的计数器实现教程 故事的开始:.count()假设你有一个NotificationModel类,保存的主要是所有的站内通知:classNotification(models.Model):"""一个简化过的Notification类,拥有三个字段

python实现中文转换url编码的方法 本文实例讲述了python实现中文转换url编码的方法。分享给大家供大家参考,具体如下:今天要处理百度贴吧的东西。想要做一个关键词的list,每次需要

Python中列表元素转为数字的方法分析 本文实例讲述了Python中列表元素转为数字的方法。分享给大家供大家参考,具体如下:有一个数字字符的列表:numbers=['1','5','','8']想要把每个元素转换

标签: python+flask

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

上一篇:Python的Flask站点中集成xhEditor文本编辑器的教程(python flask debug)

下一篇:Python的Django框架中消息通知的计数器实现教程(python中django框架)

  • 餐饮发票公司怎么抵税
  • 员工外出办事报备制度
  • 一般纳税人公司转让一般卖多少钱
  • 减免企业所得税怎么算
  • 调整以前年度递延收益确认收入账务处理
  • 小规模纳税人交印花税吗
  • 税法关于开具发票的规定
  • 无形资产界定标准
  • 价外费用纳税义务发生时间
  • 多转出的进项税能否转回
  • 税收滞纳金算不算所得税
  • 预付款发票可以入费用吗
  • 小额贷款公司借钱容易吗
  • 资本公积盈余公积区别
  • 两年前少缴的税款是否应补缴?
  • 年金的缴费基数
  • 集团内部股权无偿划转引起资本公积增加需要印花税
  • 产品预付款合同如何填写
  • 制造业增值税加计抵减
  • 预付的货款可以计入应付账款吗
  • 出口退税申报时间限制
  • 个人所得税的征收
  • 怎样解除机房
  • 怎么远程重装win10
  • 民非组织可以接受捐赠吗
  • 进货折扣适用于什么条件
  • php论坛代码
  • 现在我们来看看windows中的新增内容
  • 作废的普通发票,顾客联拿不回来
  • 固定资产清理损失可以税前扣除吗
  • javascript语言基础
  • php日期差
  • 如何在wordpress嵌入amazon链接
  • 命令行窗口
  • 合伙企业退伙个税
  • 建筑劳保费返还政策
  • 公允价值计量的投资性房地产
  • 残疾人就业保障金申报时间
  • 有没有网上学电脑的
  • 基于法律行为的物权变动模式包括
  • 调整汇兑损益的摘要怎么写?
  • 个人所得税的不同税率
  • 土地免缴土地使用税
  • 全年一次性奖金并入或单独哪个好
  • 以前年度税费减免税
  • 为员工保险取得的增值税抵扣
  • 应该是先付款还是先开发票
  • 运输费用如何做账
  • 劳务派遣公司账务
  • 酒店客人损坏物品不赔偿怎么报警
  • 生产成本的主要构成要素
  • 2018年水利建设基金税率
  • 公认会计原则是哪个国家的?
  • 待摊费用是什么意思
  • mysql一闪而退
  • winserver2008开机启动
  • 摄像头无法启用
  • win10怎么获取
  • xp系统好奇怪哦
  • wfxsnt40.exe - wfxsnt40是什么进程
  • win8共享文件
  • win10系统应用和浏览器控制出现感叹号
  • win7怎么看电脑ip地址
  • Linux利用sftp命令传输文件(极少数人知道的方法)
  • 使用自带DISM工具修复Windows8.1映像
  • 对qucik cocos2dx lua SocketTCP的再一次封装,导入全局实例,包含自定义事件
  • 编写批处理
  • 单向链表的基本操作
  • bash shell脚本编程经典实例(第2版)
  • 在javascript中如果不指明对象直接调用
  • 利用python中的运算符可以编程解决你身边的哪些问题
  • javascript要怎么学
  • jquery设置input的value
  • 资本公积如何转增股本的流程
  • 陕西电子税务局新版
  • 城市维护建设税税率
  • 光伏发电地方税收
  • 中国的消费税率是多少
  • 成都那些地方属于正东方向
  • 开票有什么好处吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设