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

相关推荐
毅炼几秒前
Java 集合常见问题总结(3)
java·开发语言·后端
Jia ming18 分钟前
《智能法官软件项目》—罪名初判模块
python·教学·案例·智能法官
Jia ming34 分钟前
《智能法官软件项目》—法律文书生成模块
python·教学·案例·智能法官软件
曦月逸霜43 分钟前
Python数据分析——个人笔记(持续更新中~)
python
海棠AI实验室43 分钟前
第六章 从“能用”到“能交付”的关键一刀:偏好对齐(Preference Alignment)数据工程
python·私有模型训练
百锦再1 小时前
Java多线程编程全面解析:从原理到实战
java·开发语言·python·spring·kafka·tomcat·maven
Jia ming2 小时前
《智能法官软件项目》—法律计算器模块
python·教学·案例·智能法官
爱华晨宇2 小时前
Python列表入门:常用操作与避坑指南
开发语言·windows·python
一切顺势而行2 小时前
python 面向对象
开发语言·python
绍兴贝贝3 小时前
代码随想录算法训练营第四十六天|LC647.回文子串|LC516.最长回文子序列|动态规划总结
数据结构·人工智能·python·算法·动态规划·力扣