Django整理01:启动流程

目录

启动

# 启动命令:
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处理请求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值