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使用any判断一个对象是否为空的方法
Nov 19 Python
Python3指定路径寻找符合匹配模式文件
May 22 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 Python
Python探索之自定义实现线程池
Oct 27 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
Python 把序列转换为元组的函数tuple方法
Jun 27 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
python实现逆滤波与维纳滤波示例
Feb 26 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
Python函数参数分类原理详解
May 28 Python
Python 字典中的所有方法及用法
Jun 10 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 和 MySQL 基础教程(四)
2006/10/09 PHP
php 前一天或后一天的日期
2008/06/28 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
JsRender实用入门教程
2014/10/31 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
python字典键值对的添加和遍历方法
2016/09/11 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python实现Keras搭建神经网络训练分类模型教程
2020/06/12 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
《兰亭集序》教学反思
2014/02/11 职场文书
个人工作表现评语
2014/04/30 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
教师自查自纠材料
2014/10/14 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
计划生育责任书
2015/05/09 职场文书
行政答辩状范文
2015/05/21 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
Python 如何实现文件自动去重
2021/06/02 Python