Flask框架信号用法实例分析


Posted in Python onJuly 24, 2018

本文实例讲述了Flask框架信号用法。分享给大家供大家参考,具体如下:

项目功能复杂,代码量越大,就越需要做业务解耦。否则在其之上做开发和维护是很痛苦的,尤其是对于团队的新人。Flask从0.6开始,通过Blinker提供了信号支持。信号就是在框架核心功能或者一些Flask扩展发生工作时所发送的通知,用于帮助你解耦应用。

Blinker的使用

安装

pip install blinker

Blinker的信号与接收方式

from blinker import signal
s = signal("test start")
def each(round):
  print("each {}".format(round))
def round_two(round):
  print("round {}".format(round))
s.connect(each)
s.connect(round_two,sender=2)  # 表示值为2的时候才会接收信号
for index in range(1,4):
  s.send(index)

打印结果:

each 1
each 2
round 2
each 3

或者简写成:

from blinker import signal
s = signal("test start")
@s.connect
def each(round)
  print("each {}".format(round))

Flask中内置信号

  • flask.template_rendered:模板渲染成功的时候发送,这个信号与模板实例template上下文的字典一起调用。
  • flask.request_started:建立请求上下文后,在请求处理开始前发送,订阅者可以用request之类的标准代理访问请求。
  • flask.request_finished:在响应发送给客户端之前发送,可以传递reponse
  • flask.got_request_exception:在请求处理中抛出异常时发送,异常本身会通过execption传递到订阅函数。
  • flask.request_tearing_down:在请求销毁时发送,它总是被调用,即使发生异常。
  • flask.appcontext_tearing_down:在应用上下文销毁时发送,它总是被调用,即使发生异常。

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
python中字典dict常用操作方法实例总结
Apr 04 Python
使用Python设计一个代码统计工具
Apr 04 Python
python 利用栈和队列模拟递归的过程
May 29 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
Python调用.NET库的方法步骤
Dec 27 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Python如何存储数据到json文件
Mar 09 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 #Python
Django中的Model操作表的实现
Jul 24 #Python
Python实现的tcp端口检测操作示例
Jul 24 #Python
python正则表达式之对号入座篇
Jul 24 #Python
Python 字符串与二进制串的相互转换示例
Jul 23 #Python
Python二进制串转换为通用字符串的方法
Jul 23 #Python
Python基于多线程实现ping扫描功能示例
Jul 23 #Python
You might like
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
jQuery的slideToggle方法实例
2013/05/07 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
python实现对csv文件的列的内容读取
2018/07/04 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
学校经典推荐信
2013/10/30 职场文书
化工专业个人的求职信范文
2013/11/28 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
工作保证书怎么写
2015/02/28 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
办公用品管理制度
2015/08/04 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
Javascript的promise,async和await的区别详解
2022/03/24 Javascript