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之模拟鼠标键盘动作具体实现
Dec 30 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
Python中collections模块的基本使用教程
Dec 07 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
Python-接口开发入门解析
Aug 01 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 Python
python画条形图的具体代码
Apr 20 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
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
解析php中反射的应用
2013/06/18 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
python海龟绘图实例教程
2014/07/24 Python
利用Psyco提升Python运行速度
2014/12/24 Python
Python+django实现文件上传
2016/01/17 Python
python实现简单爬虫功能的示例
2016/10/24 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
python计算两个地址之间的距离方法
2018/06/09 Python
pycharm配置git(图文教程)
2019/08/16 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
详解python的变量缓存机制
2021/01/24 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
自我鉴定思想方面
2013/10/07 职场文书
五年级下册复习计划
2015/01/19 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
雷锋的故事观后感
2015/06/10 职场文书