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合并lmdb文件
Jul 02 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
python 生成图形验证码的方法示例
Nov 11 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
pytorch自定义二值化网络层方式
Jan 07 Python
pytorch 修改预训练model实例
Jan 18 Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
利用JS实现数字增长
2016/07/28 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
javaScript中的空值和假值
2017/12/18 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
python实现连接mongodb的方法
2015/05/08 Python
python九九乘法表的实例
2017/09/26 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
django API 中接口的互相调用实例
2020/04/01 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
英语专业毕业生自荐信范文
2013/12/31 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android