django学习随笔:ManagementUtility
2017-12-06 11:58
363 查看
ManagementUtility类,位于django.core.management目录下的__init__.py文件。 这个类,在其init中:
def __init__(self, argv=None): self.argv = argv or sys.argv[:] #各个参数 self.prog_name = os.path.basename(self.argv[0]) #这里是去除路径 self.settings_exception = None 然后就是main_help_text,fetch_command,autocomplete,execute四个函数。 下面,仔细分析一下 execute这个函数:
try: subcommand = self.argv[1] except IndexError: subcommand = 'help' # Display help if no arguments were given. 注释写的很明白,如果没有参数,那就把help作为参数赋值进去。
# Preprocess options to extract --settings and --pythonpath. # These options could affect the commands that are available, so they # must be processed early. 后续,需要对诸如--settings和--pythonpath等参数进行抽取,预处理。因为这些的设置会影响其他参数的运行。 parser = CommandParser(None, usage="%(prog)s subcommand [options] [args]", add_help=False) 这里,又调用了CommandParser类(后续分析)。
parser.add_argument('--settings') parser.add_argument('--pythonpath') parser.add_argument('args', nargs='*') # catch-all try: options, args = parser.parse_known_args(self.argv[2:]) handle_default_options(options) except CommandError: pass # Ignore any option errors at this point. 这里,在分析透彻CommandParser后,可以更好的理解。
try: settings.INSTALLED_APPS #这里的settings = LazySettings(),在conf/__init__.py定义的。 #而LazySettings是一个类,继承自:LazyObject,后续分析。
except ImproperlyConfigured as exc: self.settings_exception = exc
相关文章推荐
- python学习随笔--django 上
- django学习随笔(1)
- django学习随笔:execute_from_command_line
- python学习随笔--django 下
- Octave学习随笔(更新至6.16)【bsxfun】
- django_book学习笔记7-django常用方法总结
- servlet技术学习随笔
- Django系列学习之十七
- Django学习系列之模板
- Django框架学习笔记(18.一些简易的知识补充)
- 深入学习Django源码基础10 - Django中http模块
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR
- Django学习 初步介绍篇 安装与Hello World
- django随笔说明
- 【Android开发学习笔记】【随笔】UI线程
- Django学习 Day1
- Django学习--xadmin
- android 学习随笔十六(广播 )
- android 项目学习随笔一(闪屏 )
- django 学习-3 模板变量