Django的runserver

当年执行 python manage runserver命令时

1. 先执行 runserver 中的 handle方法

2. 执行 self.run()方法

3. 执行 self.inner_run()

3.1 inner_run 下 run方法的封装

3.1.1 接着看 handle 怎么来的 封装了一个方法 接着找返回函数
3.1.2在 basehttp 下
3.1.3 get_wsgi_application() 是wsgi.py下的方法
3.1.4 WSGIHandler (django.core.handlers.wsgi.WSGIHandler) 继承 base.BaseHandler

3.2 import_string() 是 django.utils.module_loading 的 import_string方法

3.3 接着看 self.server_cls 是 django.core.servers.basehttp import WSGIServer导入的

Django 在这部分代码中通过自定义的 WSGIServer 类与 WSGI 服务器进行关联。

具体来说,Django 使用 WSGIServer 作为服务器基础类,它继承了 wsgiref.simple_server.WSGIServer,并且根据需要扩展了相关功能,例如支持 IPv6 和定制错误处理等。

4. run()封装好了 接着开始执行

4.1 httpd.set_app(wsgi_handler)

set_app 执行的是 from wsgiref.simple_server import WSGIServer 下的方法

4.2 httpd.serve_forever()

serve_forever 执行的是 from socketserver import BaseServer

相关推荐
苏三说技术几秒前
try...catch真的影响性能吗?
后端
布茹 ei ai1 分钟前
地表沉降监测分析系统(vue3前端+python后端+fastapi+网页部署)(开源分享)
前端·python·fastapi
闲人编程7 分钟前
API限流、鉴权与监控
分布式·python·wpf·限流·集群·令牌·codecapsule
青梅主码8 分钟前
麦肯锡发布最新报告《职场超级代理:赋能人们释放 AI 的全部潜力》:如何用 AI 赋能员工,释放无限潜力?
后端
封奚泽优11 分钟前
Deep-Live-Cam(调试和求助)
git·python·ffmpeg·pip·cuda
萤火虫的夏天25115 分钟前
虚拟环境安装tensorflow使用GPU加速,显卡:1650ti
人工智能·python·tensorflow
悟空码字16 分钟前
SpringBoot实现日志系统,Bug现形记
java·spring boot·后端
视频技术分享16 分钟前
内网视频会议升级之选:云屋,30 分钟部署替代腾讯会议
python·腾讯会议
狂奔小菜鸡16 分钟前
Day24 | Java泛型通配符与边界解析
java·后端·java ee
用户685453759776917 分钟前
为什么你的Python代码那么乱?因为你不会用装饰器
后端