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

相关推荐
APIshop4 分钟前
深入解析京东API接口:如何高效获取商品详情与SKU信息
python
94621931zyn68 分钟前
备份恢复 - Cordova 与 OpenHarmony 混合开发实战
python
PNP Robotics9 分钟前
PNP机器人受邀参加英业达具身智能活动
大数据·人工智能·python·学习·机器人
94621931zyn613 分钟前
操作历史 - Cordova 与 OpenHarmony 混合开发实战
python
智算菩萨16 分钟前
【Python进阶】搭建AI工程:Python模块、包与版本控制
开发语言·人工智能·python
大学生毕业题目25 分钟前
毕业项目推荐:90-基于yolov8/yolov5/yolo11的工程车辆检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·目标检测·cnn·pyqt·工程车辆检测
a努力。33 分钟前
字节Java面试被问:系统限流的实现方式
java·开发语言·后端·面试·职场和发展·golang
Daily Mirror40 分钟前
Day44 简单 CNN 实战
python
zyx没烦恼42 分钟前
YAML模块
开发语言·python
智航GIS1 小时前
4.2 集合(Set)
开发语言·python