django.setup()
WSGI application初始化
app注册表,存储installed applications的配置文件,populate()操是线程安全的app_config的注册:app/__init__.py default_app_config = \"app.apps.ConfigClass\" 参考:django.apps.config::AppConfig::create()import Model时,会将Model注册app_config.models注册表中参考:django.db.base::ModelBase::__new__
runserver::Command::inner_run()
WSGIHandler()
configure_logging()
get_wsgi_application()
Server初始化
runserver::Commande::handle()
runserver::Command::get_handler()
1. 创建AppConfig对象,并注册到self.app_configs2.检查app的name是否重复,重复抛出异常3. 加载并注册app的models4. 调用app_config.ready()函数,初始化app
runserver::Commande::run()
apps.populate(settings.INSTALLED_APPS)
translation.activate(setttings.LANGUAGE_CODE)
runserver::Commande::execute()
runserver::Command::check_migrations()
django.management.base::BaseCommand::validate()