![深入理解Django:框架内幕与实现原理](https://wfqqreader-1252317822.image.myqcloud.com/cover/14/43738014/b_43738014.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1.1 find_commands()函数
find_commands()函数会返回Django支持的所有命令列表,代码如下:
![](https://epubservercos.yuewen.com/7EA2B2/23020638109733406/epubprivate/OEBPS/Images/42188_33_1.jpg?sign=1739255847-ShhAZUv9CvT4VkFvFVua3LQUwgVjRGFF-0-cd835c02dcb55dadb2c14cfd1b73bf87)
上面的核心语句其实是调用pkgutil.iter_modules()方法获取参数目录下的所有模块,同时排除类似于__init__.py这样的模块,最后返回所有命令模块的名称。这此命令模块就是Django支持的全部命令集合,我们可以在Python交互模式下手动调用pkgutil.iter_modules()方法看看实际效果。这里针对的是django.core.management包所在的目录,在该目录下有一个commands目录:
![](https://epubservercos.yuewen.com/7EA2B2/23020638109733406/epubprivate/OEBPS/Images/42188_34_1.jpg?sign=1739255847-iUrAHHP3hqHJAMMZ3pOkxJ920scmzK5n-0-6662911a1a7c77128a7927b6cae18afa)