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

相关推荐
qq_189807032 分钟前
mysql如何快速判断两个数据库结构差异_使用mysqldiff工具
jvm·数据库·python
qq_654366983 分钟前
SQL如何优雅地进行多表关联查询_掌握JOIN语法执行逻辑
jvm·数据库·python
HHHHH1010HHHHH4 分钟前
如何强制phpMyAdmin通过HTTPS安全访问_配置ForceSSL参数与Web代理端证书部署
jvm·数据库·python
解救女汉子4 分钟前
如何在Python中正确使用MongoDB事务
jvm·数据库·python
2301_814809865 分钟前
Layui表单提交时如何防止用户重复点击提交按钮
jvm·数据库·python
qq_413847408 分钟前
SQL连接查询中处理NULL值的技巧_利用COALESCE处理JOIN结果
jvm·数据库·python
m0_734949799 分钟前
mysql如何通过Docker快速搭建_mysql容器化部署实践
jvm·数据库·python
2301_7965885014 分钟前
Golang怎么处理JSON大数字精度_Golang如何避免前端JavaScript解析大整数丢失精度【避坑】
jvm·数据库·python
吕源林15 分钟前
如何使用关联数组_Index-By Table集合类型定义与遍历
jvm·数据库·python
陶然同学15 分钟前
【Python】文件操作
开发语言·python