django-1.11.3 源码详解 -- 0001 django-admin.py 的调用逻辑

django-admin是django的命令行接口、可以用它来创建工程(startproject) 、创建app(startapp)。它里面又是怎么写的呢?

 

一、django-admin.py 的内容

#!/usr/bin/env python
from django.core import management

if __name__ == "__main__":
    #django-admin 直接调用的django.core.management.execute_from_command_line() 函数
    management.execute_from_command_line()

  1  上面的代码可以看出啊  这个django-admin是直接调用了django.core.mangement.execute_from_command_line() 函数

 

二、django.core.mangement.execute_from_command_line() 函数的内容

def execute_from_command_line(argv=None):
    """Run a ManagementUtility."""
    #从这里可以看出execute_from_command_line调用的是ManagementUtility类实例的execute方法
    utility = ManagementUtility(argv)
    utility.execute()

  1  由execute_from_command_line可以看出  它只是调用了ManagementUtility类 实例的execute方法;

  所以说要想搞清楚django-admin.py 它是怎么实现的还是要看ManagementUtility这个类的内容才行。

 

三、ManagementUtility类的实现

 

 

 

----

posted on 2017-06-14 13:51  蒋乐兴的技术随笔  阅读(592)  评论(0编辑  收藏  举报

导航