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

相关推荐
赵瑽瑾23 分钟前
Lua语言的嵌入式系统
开发语言·后端·golang
霍璟琅24 分钟前
Delphi语言的数据可视化
开发语言·后端·golang
霍熠烁1 小时前
Objective-C语言的云计算
开发语言·后端·golang
测试杂货铺1 小时前
Jmeter常用的几种断言方法
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
WANGWUSAN661 小时前
Python教程:使用Matplotlib模块画柱状图、饼形图、直方图
开发语言·经验分享·python·程序人生·matplotlib·数据可视化
卓怡学长1 小时前
w200基于spring boot的个人博客系统的设计与实现
java·数据库·spring boot·后端·spring·intellij-idea
Channing Lewis2 小时前
flask开发的网站,后端服务关闭后,可以找回之前的数据的吗
python·flask
115432031q2 小时前
基于SpringBoot养老院平台系统功能实现十一
java·前端·后端
莫问alicia2 小时前
苍穹外卖 项目记录 day11 Spring Task订单定时处理-来单提醒-客户催单
java·数据库·spring boot·python·spring·mybatis
明月看潮生2 小时前
青少年编程与数学 02-009 Django 5 Web 编程 03课题、项目结构
python·青少年编程·django·编程与数学