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

相关推荐
工程师老罗10 分钟前
Pytorch中的优化器及其用法
人工智能·pytorch·python
2301_8223650318 分钟前
实战:用Python分析某电商销售数据
jvm·数据库·python
luoluoal19 分钟前
基于python的人脸识别的酒店客房入侵检测系统(源码+文档)
python·mysql·django·毕业设计·源码
好好研究28 分钟前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
子午34 分钟前
【2026计算机毕设~AI项目】鸟类识别系统~Python+深度学习+人工智能+图像识别+算法模型
图像处理·人工智能·python·深度学习
流㶡1 小时前
网络爬虫库与robots.txt规则
python·网络爬虫
2301_788756061 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
小马爱打代码1 小时前
Spring Boot:第三方 API 调用的企业级容错设计
java·spring boot·后端
阿部多瑞 ABU1 小时前
`tredomb`:一个面向「思想临界质量」初始化的 Python 工具
前端·python·ai写作
u0109272711 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python