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中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
50行Python代码实现人脸检测功能
Jan 23 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
Python 类的特殊成员解析
Jun 20 Python
Django实现auth模块下的登录注册与注销功能
Oct 10 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
python中pivot()函数基础知识点
Jan 03 Python
Python操作Excel的学习笔记
Feb 18 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
url decode problem 解决方法
2011/12/26 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
jquery获取选中的文本和值的方法
2014/07/08 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
Python简单的制作图片验证码实例
2017/05/31 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
如何把python项目部署到linux服务器
2020/08/26 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
法律专业自我鉴定
2013/10/03 职场文书
聚美优品的广告词
2014/03/14 职场文书
无犯罪记录证明
2014/09/19 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
销售员自我评价
2015/03/11 职场文书
会计专业求职信范文
2015/03/19 职场文书
村官2015年度工作总结
2015/10/14 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
4种方法python批量修改替换列表中元素
2022/04/07 Python