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获取mp3文件信息的方法
Jun 15 Python
python字典基本操作实例分析
Jul 11 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
python数据类型_字符串常用操作(详解)
May 30 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
pytorch中图像的数据格式实例
Feb 11 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
一些关于python 装饰器的个人理解
Aug 31 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
Python 实现Mac 屏幕截图详解
Oct 05 Python
python保存图片的四个常用方法
Feb 28 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
JS 自定义带默认值的函数
2011/07/21 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
js数组的操作指南
2014/12/28 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
jQuery Raty 一款不错的星级评分插件
2016/08/24 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
基于hover的用法实例(推荐)
2017/07/04 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
Python制作CSDN免积分下载器
2015/03/10 Python
在Python下尝试多线程编程
2015/04/28 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
python getopt模块使用实例解析
2019/12/18 Python
Django的CVB实例详解
2020/02/10 Python
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
餐饮业的创业计划书范文
2013/12/26 职场文书
学校四群教育实施方案
2014/06/12 职场文书
员工开除通知书
2015/04/25 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
律师催款函范文
2015/06/24 职场文书
开学典礼校长致辞
2015/07/29 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript