当前位置: 首页 > article >正文

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


http://www.kler.cn/a/471338.html

相关文章:

  • 使用 Conda创建新的环境遇到的问题
  • 【网络安全 | 漏洞挖掘】HubSpot 全账户接管(万字详析)
  • 快速学习 pytest 基础知识
  • 【WPF】使用BitmapImage给Image的Source赋值,并释放原占用资源,避免删除原文件时导致程序崩溃
  • Bash Shell的操作环境
  • UWB实操:用信号分析仪(频谱分析仪)抓取UWB频域的图像
  • 书籍推荐:Kubernetes 修炼手册
  • 121 买入股票的最佳时机
  • C4D2025 win版本安装完无法打开,提示请将你的maxon App更新至最新版本,如何解决
  • RabbitMQ如何实现队列持久化
  • Python数据可视化-Pandas绘图
  • ubuntu20.04 在线安装postgresql 扩展postgis
  • UVM:uvm_component methods configure
  • 【HarmonyOS 5.0】从0到1开发购物应用App(二):登录页对接口
  • Elixir语言的计算机基础
  • idea下java的maven项目编译内存溢出GC overhead limit exceeded解决办法
  • javafx 将项目打包为 Windows 的可执行文件exe
  • 【开源免费】基于SpringBoot+Vue.JS多维分类的知识管理系统(JAVA毕业设计)
  • Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问
  • Python自学 - 封装与私有化
  • BaseCTF scxml 详解
  • 基于COT(Chain-of-Thought Prompt)的教学应用:如何通过思维链提示提升模型推理能力
  • 107周二复盘 (185)Demo打包
  • 内置AI与浏览器的开源终端Wave Terminal安装与远程连接内网服务器教程
  • C语言字符串函数详解
  • Pytest-Bdd-Playwright 系列教程(18):使用 Jinja2 钩子函数生成自定义测试报告