学无先后,达者为师

网站首页 编程语言 正文

关于Flask高级_内置信号的介绍和两个小实例

作者:NewBurlaSKing 更新时间: 2022-08-30 编程语言

Flask高级_内置信号

一.介绍

Flask中常用的内置信号:
  1. template_rendered:模版渲染完成后的信号。
  2. before_render_template:模版渲染之前的信号。
  3. request_started:请求开始之前,在到达视图函数之前发送信号。
  4. request_finished:请求结束时,在响应发送给客户端之前发送信号。
  5. request_tearing_down:请求对象被销毁时发送的信号,即使在请求过程中发生异常也会发送信 号。
  6. got_request_exception:在请求过程中抛出异常时发送信号,异常本身会通过exception传递到订 阅(监听)的函数中。一般可以监听这个信号,来记录网站异常信息。
  7. appcontext_tearing_down:应用上下文被销毁时发送的信号。
  8. appcontext_pushed:应用上下文被推入到栈上时发送的信号。
  9. appcontext_popped:应用上下文被推出栈时发送的信号。
  10. message_flashed:调用了Flask的 flash 方法时发送的信号。

二.实例

template_rendered的使用:
#coding=utf-8

from flask import Flask,render_template,template_rendered

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('home.html')

def renderfunc(sender,template,context):
    print(sender)
    print(template)
    print(context)

template_rendered.connect(renderfunc)

if __name__ == '__main__':
    app.run(debug=True)

在这里插入图片描述

got_request_exception的使用:
#coding=utf-8

from unicodedata import name
from flask import Flask,got_request_exception

app = Flask(__name__)

@app.route('/')
def zero_err():
    x = 1 / 0
    return 'Hello~'

def errhandle(sender,exception):
    with open('text.log','a',encoding='utf-8') as f:
        f.write(str(sender) + '\n')
        f.write(str(exception) + '\n')

got_request_exception.connect(errhandle)

if __name__ == '__main__':
    app.run(debug=True)

在这里插入图片描述

注:

如果觉得笔记有些问题,麻烦在百忙之中在评论中指正,或提出建议!另外,如果觉得这份笔记对你有所帮助,麻烦动动发财的小手手点一波赞!

原文链接:https://blog.csdn.net/qq_55961861/article/details/126592627

栏目分类
最近更新