Django启动过程之超级详细分析

摘要:
1.执行pythonmanage.pyrunserver127.0.1:8000命令条目管理。py 2.输入django.core。管理__初始__。Py ManagementUtility类3.执行Execute()方法。这是整个过程的关键点。代码键1.调用应用程序。django中的populate方法。setup():应用程序。填充

1.执行python manage.py runserver 127.0.0.1:8000  命令

入口  manage.py   

Django启动过程之超级详细分析第1张

2. 进入django.core.management    __init__.py    ManagementUtility类

 Django启动过程之超级详细分析第2张

3.执行execute()方法  这是整个流程的关键点 代码

Django启动过程之超级详细分析第3张

关键1  在django.setup()中调用apps.populate方法:apps.populate(settings.INSTALLED_APPS)   

Django启动过程之超级详细分析第4张

 关键2 autocomplete()

Django启动过程之超级详细分析第5张

 关键3 run_from_argv(self.argv)

Django启动过程之超级详细分析第6张

 execute方法

Django启动过程之超级详细分析第7张

 这里的handle是 runserver的 handler方法

Django启动过程之超级详细分析第8张

run()方法

Django启动过程之超级详细分析第9张

 注意 main函数 将 self.inner_run 函数地址传过去了

main()函数

 Django启动过程之超级详细分析第10张

 python_reloader()函数

Django启动过程之超级详细分析第11张

 回到刚才的注意点  inner_run()函数

Django启动过程之超级详细分析第12张

 这里get_handler()函数  拿到wsgi.py中的 WSGI对象

Django启动过程之超级详细分析第13张

 Django启动过程之超级详细分析第14张

 wsgi.py

Django启动过程之超级详细分析第15张

 下面我们看一下run方法  启动django web

Django启动过程之超级详细分析第16张

免责声明:文章转载自《Django启动过程之超级详细分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安装paddle的问题,报错Can not find library: libcudnn.so. The process maybe hang.KDD MIMIC-IV与MIMIC-III的区别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Django 表操作-表之间的关系(建立在MySQL上)

Django 表操作-表之间的关系(建立在MySQL上) 数据表之间的关系有:一对多,多对多和一对一,在Django项目中做好建立表关系的准备 数据表:book,book_detail,author,publish 数据关系: 多对多:book和author 一对多:book和publish 一对一:book和book_detail 所有外键推荐建立在查询...

Django web框架之权限管理二

1. login登录 def login(request): if request.method=="GET": return render(request,'login.html') else: username=request.POST.get('user') password=reque...

django 类视图

类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图。使用类视图可以使用类的一些特性,比如继承等。 View: django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他。如果我们写自己的类视图,也可以继承自他。然后再根据当前请求的method,来实现不同的方法。比如这个视图只能使用get...

Django之F和Q查询等其他查询

  1. 内容回顾   1. 外键的查询操作 1. 正向查找(详见day69内容回顾时间.py)    1. 基于对象的查询(SQL:子查询)    2. 基于双下划线的跨表查询(SQL:join)   2. 反向查找(详见day69内容回顾时间.py)   1. 基于对象的查询   2. 基于双下划线的跨表查询   2. 多对多关系  ManyToM...

使用Docker官方的Django包【转】

官方Django docker,并没有安装Django 所以需要 在requirements.txt中配置Django 具体安装流程可以参考:http://www.logme.cn/blog/51/use_Docker_official_django/ 作两记录: - python安装modules,切换到Python27Scripts 执行 easy_i...

django 解决白名单

1. settings WHITE_REGEX_URL_LIST = [ "/register/", "/send/sms/", "/login/", "/image/code/", "/index/", ] 2. 中间件 from django.utils.deprecation import Middleware...