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脚本生成Android SALT扰码的方法
Sep 18 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
python处理数据,存进hive表的方法
Jul 04 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
python数据挖掘需要学的内容
Jun 23 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 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实现的下载css文件中的图片的代码
2010/02/08 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
PHP解决中文乱码
2017/04/28 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
Python中使用ElementTree解析XML示例
2015/06/02 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
学期自我鉴定
2013/11/04 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
道德演讲稿
2014/05/21 职场文书
企业宗旨标语
2014/06/10 职场文书
新闻传播专业求职信
2014/07/22 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
紫日观后感
2015/06/05 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书