我没有看到这个问题的答案,这真的让我很困扰,因为我已经看到了两者都被使用过。
在此示例中,“ myapp”是已创建的应用。
我一直看到用户在INSTALLED_APPS列表中像这样设置他们的应用程序:
INSTALLED_APPS = [
'myapp',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
代替
INSTALLED_APPS = [
'myapp.apps.MyappConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
所以我有2个问题
- 是否在“ myapp”冗余之后添加“ apps.MyappConfig”?
通常是,但是并非总是。如果您自己没有在AppConfig
中指定INSTALLED_APP
,那么Django将在模块中寻找default_app_config
变量,如文档中所指定:
[当
INSTALLED_APPS
包含应用程序模块的虚线路径时,Django 检查该模块中的default_app_config
变量。
例如,在django.contrib.sessions
module [GitHub]中,我们看到:
django.contrib.sessions
但是,可以在一个模块中定义多个default_app_config = 'django.contrib.sessions.apps.SessionsConfig'
,每个AppConfig
都会稍稍更改应用程序的行为。参见下一部分:
AppConfig
[Django-doc]是您的应用程序中的一个类,其中包含有关该应用程序的元数据。它包含例如应用程序的名称,标签,路径等。此外,您可以覆盖AppConfig
之类的方法。如果加载了模型,则将调用此方法,该方法通常用于执行一些管理任务或在Django启动时加载信号。
我们可以制作多个.ready()
[Django-doc],例如一个用于开发,一个用于生产以及一个用于测试。但这并不经常发生。
来自.ready()
:
要配置应用程序,请子类化AppConfig并将虚线路径放入该子类的INSTALLED_APPS中。
和
如果没有default_app_config,则Django使用AppConfig基类
如果您需要添加其他应用程序配置(例如,导入Signals,则可以在应用程序配置中添加],然后需要将其包含在AppConfig
中。 否则,您只能在Django's docs中包含您的应用程序
所以回答您的问题:
是否在“ myapp”冗余之后添加“ apps.MyappConfig”?
否
如果有什么重要性,那是什么?
是,添加额外的配置