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

相关推荐
互联网搬砖老肖8 分钟前
Selenium2+Python自动化:利用JS解决click失效问题
javascript·python·自动化
跟着杰哥学Python43 分钟前
一文读懂Python之numpy模块(34)
开发语言·python·numpy
爱吃烤鸡翅的酸菜鱼44 分钟前
Java【网络原理】(4)HTTP协议
java·网络·后端·网络协议·http
魔道不误砍柴功1 小时前
Spring Boot 依赖注入与Bean管理:JavaConfig如何取代XML?
xml·spring boot·后端
Asthenia04121 小时前
Nginx详解:从基础到微服务部署的全面指南
后端
常年游走在bug的边缘2 小时前
Spring Boot 集成 tess4j 实现图片识别文本
java·spring boot·后端·图片识别
NovakG_2 小时前
SpringCloud小白入门+项目搭建
后端·spring·spring cloud
努力的搬砖人.2 小时前
Spring Boot 实现定时任务的案例
spring boot·后端
啊哈哈哈哈哈啊哈哈2 小时前
R4打卡——tensorflow实现火灾预测
人工智能·python·tensorflow
闻道☞2 小时前
RAGFlowwindows本地pycharm运行
python·pycharm·ragflow