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缩进区别分析
Feb 15 Python
Python写的一个简单DNS服务器实例
Jun 04 Python
Python中MYSQLdb出现乱码的解决方法
Oct 11 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
python3中str(字符串)的使用教程
Mar 23 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
用Python 执行cmd命令
Dec 18 Python
python 实现逻辑回归
Dec 30 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类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP实现递归复制整个文件夹的类实例
2015/08/03 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
phpfpm的作用和用法
2019/10/10 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
js循环改变div颜色具体方法
2013/06/25 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
面试常见的js算法题
2017/03/23 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
python输出指定月份日历的方法
2015/04/23 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
python日志模块logbook使用方法
2019/09/19 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
合作协议书怎么写
2014/04/18 职场文书
弄虚作假心得体会
2014/09/10 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
Django实现翻页的示例代码
2021/05/24 Python
新手必备Python开发环境搭建教程
2021/05/28 Python
mysql insert 存在即不插入语法说明
2022/03/25 MySQL