FlaskQ 请求的生命周期通常包括以下几个阶段:
1、客户端发起请求:客户端向服务器发送HTTP请求,请求可以包含请求头、请求参数、请求体信息
2、Flask 应用接收请求: Flask 应用程序接收HTTP请求,然后根据请求的URL和HTTP方法,找到匹配的视图函数进行处理,在此阶段,Flask会创建一个应用上下文和一个请求上下文对象。
- 2.1 如果我们需要在第一个请求运行前处理事情(全局系统健康情况检查)需要调用: before_first_request函数
- 2.2 如果我们需要在每个请求前处理事情(判断是否登录, 限流, 白名单)需要调用:before_request函数
- 3、视图函数处理请求:在此阶段,Flask将请求传递给匹配的视图函数进行处理,视图函数可能会对请求进行处理,并返回一个响应对象。
- 4、响应对象返回客户端:当视图函数处理完请求后,它会返回一个响应对象,Flask应用程序将该响应对象发送回客户端。在此阶段,Flask将请求上下文和应用上下文进行清理。
- 4.1 如果没有未处理的异常抛出, 在每次请求后会运行: after_request函数, 一般用于格式化响应结果。
- 4.2 每次请求后都会运行的钩子函数是: teardown_request函数, 场景有:销毁数据库连接对象, 耗内存的数据变量等。