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

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

 

1、django-admin.py 的内容django

#!/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() 函数app

 

2、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方法;post

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

 

3、ManagementUtility类的实现命令行

 

 

 

----code