Django的执行流程
阅读时间:全文 196 字,预估用时 1 分钟
创作日期:2017-05-22
上篇文章:配置分布式数据库citus
下篇文章:连接pgsql报认证错误解决方法
BEGIN
前言
当在django项目根目录下执行python manage.py xxx xxxx后执行步骤是什么呢?
步骤分析
第一步:程序进入manage.py执行到第十行,调用入口函数:execute_from_command_line,传入manage.py后面跟着的参数。
manage.py(10)<module>
execute_from_command_line(sys.argv)
第二步:通过第一步调用execute_from_command_line函数进入lib/python2.7/site-packages/django/core/management/__init__.py
,并在363行执行utility.execute()
lib/python2.7/site-packages/django/core/management/__init__.py(363)execute_from_command_line()
utility.execute()
第三步:此时已执行完程序执行前的初始化工作,如果355行的run_from_argv进入调用django项目的核心入口。
lib/python2.7/site-packages/django/core/management/__init__.py(355)execute()
self.fetch_command(subcommand).run_from_argv(self.argv)
第四步:合成命令,完成项目主体功能模块的引入。
lib/python2.7/site-packages/django/core/management/base.py(283)run_from_argv()
self.execute(*args, **cmd_options)
lib/python2.7/site-packages/django/core/management/base.py(330)execute()
output = self.handle(*args, **options)
第六步:执行合成的命令,此时会进入项目配置好的任务目录找到命令执行需要的文件,执行文件。
crawlerapp/management/commands/crawler_base_command.py(52)handle()
eval(cmd)
FINISH
上篇文章:配置分布式数据库citus
下篇文章:连接pgsql报认证错误解决方法