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

相关推荐
小白学大数据14 分钟前
绕过拼多多 App 反抓包机制的综合逆向解决方案
开发语言·爬虫·python·自动化
使者大牙15 分钟前
【单点知识】 Python装饰器介绍
开发语言·数据库·python
Jackson@ML19 分钟前
2026最新版Sublime Text 4安装使用指南
java·python·编辑器·sublime text
TonyLee01720 分钟前
半监督学习介绍
人工智能·python·深度学习·机器学习
古城小栈22 分钟前
Rust复合类型 四大军阀:数、元、切、串
开发语言·后端·rust
kong790692832 分钟前
Python核心语法-Python自定义模块、Python包
开发语言·python·python核心语法
OLOLOadsd12340 分钟前
基于Mask-RCNN和RegNetX的茎蛀虫检测识别系统详解
python
半路_出家ren1 小时前
1.古典密码概述
python·网络安全·密码学·古典密码·加密方式
CJenny1 小时前
Claude Code常用操作和使用方法
人工智能·python
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue酒店预订系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计