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

相关推荐
Victor3563 分钟前
Redis(169)如何使用Redis实现数据同步?
后端
Victor3564 分钟前
Redis(168) 如何使用Redis实现会话管理?
后端
谷粒.2 小时前
Cypress vs Playwright vs Selenium:现代Web自动化测试框架深度评测
java·前端·网络·人工智能·python·selenium·测试工具
uzong6 小时前
程序员从大厂回重庆工作一年
java·后端·面试
码事漫谈9 小时前
【精华】C++成员初始化列表完全指南:为什么、何时以及如何正确使用
后端
小糖学代码9 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
码事漫谈9 小时前
C++ 强制类型转换:类型安全的多维工具
后端
Data_agent9 小时前
1688获得1688店铺详情API,python请求示例
开发语言·爬虫·python
周杰伦fans10 小时前
pycharm之gitignore设置
开发语言·python·pycharm
RainbowSea10 小时前
github 仓库主页美化定制
后端