Django整理01:启动流程

本文详细介绍了Django项目的本地启动过程,从`python manage.py runserver`命令开始,讲解了如何执行handler函数,自动重载机制以及WSGI服务器的`server_forever`函数中的select循环。在代码修改时,autoreload模块会监控文件变化并自动重启服务。整个启动流程确保了开发中的便捷性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

启动

# 启动命令:
python manage.py runserver
# 运行先文件的handler函数
django\core\management\commands\runserver.py

先绑定一些参数最后,执行实例的run方法,user_reloader可以在启动命令时添加,让代码修改服务不重启。
在这里插入图片描述
aotureload模块负责控制线程的启动与重启任务
在这里插入图片描述
进入到main中运行python_reloader函数,
在这里插入图片描述
若环境变量没有设置(正常情况下不会设置),进入到restart_with_reloader中:
在这里插入图片描述
修改代码时会自动重启在原因在这个函数中,subprocess.call命令启动了一个子进程,autoreload模块中有线程启动监控文件改变情况,若改变则杀死子进程。
args是启动命令参数列表,new_environ添加了"RUN_MAIN"参数,使子进程会进入到python_reloader(上一个函数)的if os.environ.get(“RUN_MAIN”) == “true”:中。
在inner_run中处理请求类和运行启动函数
在这里插入图片描述
run函数中就是WSGI的server_forever函数了
在这里插入图片描述

server_forver函数中就是select循环,这里注意,本地调试时候使用的是select循环不是poll和epoll(以后整理一篇三者的区别)
在这里插入图片描述
到这Django本地正常运行起来了。通过select监控端口请求,交给Django的handler处理请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值