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类的实现:
----