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

相关推荐
用户83562907805119 小时前
使用 Python 在 Excel 中添加和编辑形状
后端·python
用户2049375549519 小时前
端侧语音部署踩坑:模型能跑不等于终端真的能用
后端·算法
n8n20 小时前
Spring AI 结构化输出实战:让模型返回 JSON,而非自由文本
后端
2601_9623004720 小时前
python在运维上可以干什么,请举几个具体的例子
运维·python·系统管理·网络监控·自动化脚本
小刘在重生~20 小时前
Java 异常体系完整笔记
java·笔记·python
用户83562907805120 小时前
使用 Python 为 PDF 添加和管理超链接
后端·python
抠脚小弟20 小时前
Spring Task 定时任务详解:从入门到实战
java·后端·spring
千千寰宇20 小时前
[Python/测试] pytest:简洁、可扩展的 Python 测试框架
python·软件质量保障与测试
少陽君20 小时前
Python 并发编程:IO 等待用线程/asyncio,CPU 计算才用进程
数据库·python·php