Flask找上下文源码

1. app = Flask(name)

app.call

1.1 按住 command 键 点击 进到这个函数里

1.2 接着找 return 看看返回什么 点进去

1.3 找到定义函数

1.4 点进去先看这个里边有啥

1.5 找到定义类

1.6 找到RequestContext 类

1.7 找到 RequestContext ---> 的push 方法

1.8 点击 _cv_request 找到 globals.py 下的 _cv_request栈

2. 在wsgi的push方法中

2.1 进到push 方法

2.2 进到 app_context

2.3 进到APPContext

2.4 在ctx.py下 找到AppContext 类

2.5 找到AppContext --> 的push 方法

2.6 点击 _cv_app ---> 找到 globals.py 下的 _cv_app栈

3. 找到 --> APPContext --> RequestContext

3.1 进到LocalProxy

栈入口

栈的入口可以理解为:

应用上下文入口:当 app_ctx.push() 被调用时,应用上下文被推入栈。

请求上下文入口:当 _cv_request.set(self) 被调用时,当前请求上下文被推入栈。

栈退出

栈的退出通常在 pop() 方法中处理。Flask 在每个请求完成时,会自动调用请求上下文和应用上下文的弹出逻辑。

相关推荐
Algebraaaaa1 分钟前
为什么线程阻塞要用.join而不是.wait
java·c++·python
王中阳Go2 分钟前
12 Go Eino AI应用开发实战 | 消息队列架构
人工智能·后端·go
起风了___13 分钟前
Python 批量发邮件脚本:Excel 名单 + Jinja2 模板,带日志与防限流,163 邮箱实测可用
python·程序员
沐森17 分钟前
Rust 的CPU和IO操作
后端
Lucky_Turtle20 分钟前
【Springboot】解决PageHelper在实体转Vo下出现total数据问题
java·spring boot·后端
Mr.朱鹏20 分钟前
大模型入门学习路径(Java开发者版)下
java·python·学习·微服务·langchain·大模型·llm
無量23 分钟前
AI工程化实践指南:从入门到落地
后端·ai编程
golang学习记24 分钟前
Jetbrains 这个知名软件十年了!
后端
老华带你飞27 分钟前
志愿者服务管理|基于springboot 志愿者服务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
weixin_4215850127 分钟前
PYTHON中的索引操作
python