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

相关推荐
宸津-代码粉碎机3 分钟前
Spring 6.0+Boot 3.0实战避坑全指南:5大类高频问题与解决方案(附代码示例)
java·数据仓库·hive·hadoop·python·技术文档编写
傻啦嘿哟3 分钟前
Python自动整理音乐文件:按艺术家和专辑分类歌曲
数据库·python·分类
苏三的开发日记4 分钟前
flink集群服务搭建
后端
程序帝国7 分钟前
SpringBoot整合RediSearch(完整,详细,连接池版本)
java·spring boot·redis·后端·redisearch
weixin_462446238 分钟前
基于 Flask + lunar-python 的农历转换 API 实战(公历 ↔ 农历 / 干支 / 生肖 / 节日)
python·flask·节日
weixin_5795996621 分钟前
编写一个程序,输入两个数字的加减乘除余数(Python版)
开发语言·python
liu****24 分钟前
02_Pandas_数据结构
数据结构·python·pandas·python基础
源码获取_wx:Fegn089536 分钟前
基于springboot + vueOA工程项目管理系统
java·vue.js·spring boot·后端·spring
小哀243 分钟前
2025年总结: 我还在往前走
前端·后端·全栈
RFCEO43 分钟前
用手机写 Python程序解决方案
开发语言·python·智能手机·qpython环境安装