首页 > 解决方案 > 将应用程序添加到 settings.py 的不同方法

问题描述

有两种方法可以将应用程序添加到 Django 中settings.py

'appname.apps.AppnameConfig',

'appname',

我知道对于通过 安装的第三方应用程序pip,不可能使用第一种方法。但是每种方法的优缺点是什么?

标签: django

解决方案


两者都可用于第三方应用程序。这个想法是,为了使用一个应用程序,你需要加载相应的AppConfig.

Django 有一个机制来确定AppConfig要使用的。如果 中没有 的子类AppConfig,则该应用程序使用apps.py默认值。AppConfig

如果有 的单个子类AppConfig,那么它将利用它AppConfig。如果有多个这样的子类,并且一个有default=True,那么那将AppConfig是使用的那个。

我们还可以在 app 模块中指定一个默认值AppConfig__init__.py如下__init__.py所示:

# app_name/__init__.py

default_app_config = 'app_name.apps.AppConfigSubclass'

因此,这些都用于确定默认值 AppConfig。这意味着如果您将应用程序的名称写为INSTALLED_APPS设置 [Django-doc]的一个元素,它将用于确定运行它的默认值 AppConfig

然而,有时需要使用AppConfig. 在这种情况下,您指定 的完整限定名AppConfig,因此INSTALLED_APP看起来像:

# settings.py

# …

INSTALLED_APPS = [
    # …,
    'app_name.apps.OtherAppConfig'
    # …
]

# …

因此,只要清楚默认应用程序是什么,我们就可以使用应用程序的名称。从我们需要另一个AppConfig默认值的那一刻起,有必要指定AppConfig.


推荐阅读