使用信号分为3步,第一是定义一个信号,第二是监听一个信号,第三是发送一个信号。

1. 定义信号:定义信号需要使用到blinker这个包的Namespace类来创建一个命名空间。比如定义一个在访问了某个视图函数的时候的信号。示例代码如下:

 # Namespace的作用:为了防止多人开发的时候,信号名字冲突的问题
from blinker import Namespace mysignal = Namespace()
visit_signal = mysignal.signal('visit-signal')

2. 监听信号:监听信号使用singal对象的connect方法,在这个方法中需要传递一个函数,用来接收以后监听到这个信号该做的事情。示例代码如下:

 def visit_func(sender,username):
print(sender)
print(username)
mysignal.connect(visit_func)

3. 发送信号:发送信号使用singal对象的send方法,这个方法可以传递一些其他参数过去。示例代码如下:

 mysignal.send(username='saber')

### Flask内置的信号:
1. template_rendered:模版渲染完成后的信号。
2. before_render_template:模版渲染之前的信号。
3. request_started:模版开始渲染。
4. request_finished:模版渲染完成。
5. request_tearing_down:request对象被销毁的信号。
6. got_request_exception:视图函数发生异常的信号。一般可以监听这个信号,来记录网站异常信息。
7. appcontext_tearing_down:app上下文被销毁的信号。
8. appcontext_pushed:app上下文被推入到栈上的信号。
9. appcontext_popped:app上下文被推出栈中的信号
10. message_flashed:调用了Flask的`flashed`方法的信号。

最新文章

  1. CSS布局中的问题
  2. 程序员的出路在哪里?挣钱的机会来了续-福利来了,仿QQ界面,放出全部源码,打造创业框架及实现思路
  3. 有趣的JavaScript小程序
  4. DataGrid2
  5. 谈谈Nullable<T>的类型转换问题
  6. SharpDevelop插件开发手册
  7. 转:Windows平台配置Appium+Java环境
  8. CI框架学习——检查用户名与密码是否合法(二)
  9. Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  10. redis源码解析(1):redisObject对象说明
  11. RFCN配置参数
  12. Unity---判断某个点是否在摄像机的视景范围内
  13. this和构造器的内存分析(***)
  14. xdcms_3.0.1 | 代码审计
  15. WPF 斜角border
  16. 【Spring】2、BeanFactory 和FactoryBean的区别
  17. Apache-Shiro介绍
  18. Bandwagon Host – 64M内存 1.5G硬盘 100G流量 年3.99美金
  19. Visual Studio 2010 常用快捷方式
  20. Python目录整合

热门文章

  1. 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统
  2. WPF之路——用户控件对比自定义控件UserControl VS CustomControl)
  3. java锁和同步
  4. RequireJS禁止缓存
  5. mongodb在32位机的连接
  6. [Go语言]从Docker源码学习Go——指针和Structs
  7. hdu3535(AreYouBusy)
  8. 表单验证 靠name获取
  9. hdu 1257 最少拦截系统【贪心 || DP——LIS】
  10. java操作mongoDB数据库的简单实例