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下singleton模式的实现方法
Jul 16 Python
Python实现拼接多张图片的方法
Dec 01 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
python生成带有表格的图片实例
Feb 03 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
python提取xml里面的链接源码详解
Oct 15 Python
YUV转为jpg图像的实现
Dec 09 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
python代码如何实现余弦相似性计算
Feb 09 Python
python 装饰器的使用示例
Oct 10 Python
详解分布式系统中如何用python实现Paxos
May 18 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
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
一页面多XMLHttpRequest对象
2007/01/22 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
葬礼司仪主持词
2014/03/31 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
房屋产权证明书
2014/10/15 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
标准发言稿结尾
2019/07/18 职场文书