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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
简单解决Python文件中文编码问题
Nov 22 Python
python3中bytes和string之间的互相转换
Feb 09 Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
python读取各种文件数据方法解析
Dec 29 Python
Python实现代码统计工具
Sep 19 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
Python中常见的导入方式总结
May 06 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对大文件进行读取操作的实现代码
2013/01/23 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP return语句的另一个作用
2014/07/30 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
js上传图片及预览功能实例分析
2015/04/24 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Zabbix实现微信报警功能
2016/10/09 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python多进程间通信代码实例
2019/09/30 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
《姥姥的剪纸》教学反思
2014/02/25 职场文书
2014年保管员工作总结
2014/11/18 职场文书
文案策划岗位职责
2015/02/11 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
导游词之襄阳古城
2019/09/27 职场文书
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android
利用nginx搭建RTMP视频点播、直播、HLS服务器
2022/05/25 Servers
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android