Flask 基于wsgi源码启动流程

1. 点击 call 进入到源码

2. 找到 call 方法 return 执行的是 wsgi方法

3. 点击 wsgi 方法 进到 wsgi return 执行的是 response 方法

4. 点击response 方法 进到 full_dispatch_request

5. full_dispatch_request 执行finalize_request 方法

6. finalize_request 执行response 方法

7. 进到 make_response 方法 执行 rv

8. rv 执行 Response Response 在wrappers.py 中 继承 ResponseBase

9. call 中的wsgi方法 就等同于

werkzeug.wrappers 的 Response

10. run 方法 执行的是 run_simple

11. 因此可以得出

python 复制代码
from werkzeug.serving import run_simple
from werkzeug.wrappers import Response


def app(environ, start_response):
    print("请求执行")
    response = Response("你好")
    return response(environ, start_response)


if __name__ == '__main__':
    run_simple('127.0.0.1', 5000, app)

12. 点击链接进入浏览器

13. 浏览器显示

相关推荐
张槊哲7 分钟前
函数的定义与使用(python)
开发语言·python
船长@Quant11 分钟前
文档构建:Sphinx全面使用指南 — 实战篇
python·markdown·sphinx·文档构建
iuyou️13 分钟前
Spring Boot知识点详解
java·spring boot·后端
一弓虽25 分钟前
SpringBoot 学习
java·spring boot·后端·学习
姑苏洛言34 分钟前
扫码小程序实现仓库进销存管理中遇到的问题 setStorageSync 存储大小限制错误解决方案
前端·后端
光而不耀@lgy1 小时前
C++初登门槛
linux·开发语言·网络·c++·后端
偶尔微微一笑1 小时前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器
方圆想当图灵1 小时前
由 Mybatis 源码畅谈软件设计(七):SQL “染色” 拦截器实战
后端·mybatis·代码规范
毅航2 小时前
MyBatis 事务管理:一文掌握Mybatis事务管理核心逻辑
java·后端·mybatis
我的golang之路果然有问题2 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database