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 在每个请求完成时,会自动调用请求上下文和应用上下文的弹出逻辑。

相关推荐
dfdfadffa13 小时前
如何创建仅在首次订阅时执行一次计算的 RxJS 懒加载 Observable
jvm·数据库·python
counting money13 小时前
Spring框架基础(依赖注入-半注解形式)
java·后端·spring
m0_6245785913 小时前
SQL分组后如何计算移动平均值_利用窗口函数AVG配合ROWS
jvm·数据库·python
Code_Artist13 小时前
一天之内我让 AI 用 Netty 造了一个最小可用的 MVC 框架:体验一下造轮子的快感😅!
后端·netty·ai编程
2401_8242226913 小时前
如何修复待办事项列表无法添加任务的 JavaScript 错误
jvm·数据库·python
也许明天y13 小时前
LangChain4j + Spring Boot 多智能体协调架构原理深度解析
spring boot·后端·agent
CHANG_THE_WORLD13 小时前
<Fluent Python > Unicode 文本与字节
开发语言·python
测试员周周13 小时前
【AI测试系统】第1篇:LangGraph 实战:用 State Graph 搭建 AI测试流水线(4 步编排 + RAG 增强 + 完整代码)
linux·windows·python·功能测试·microsoft·单元测试·多轮对话
AI人工智能+电脑小能手13 小时前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index