django - 将应用程序添加到 settings.py 的不同方法
问题描述
有两种方法可以将应用程序添加到 Django 中settings.py
:
'appname.apps.AppnameConfig',
和
'appname',
我知道对于通过 安装的第三方应用程序pip
,不可能使用第一种方法。但是每种方法的优缺点是什么?
解决方案
两者都可用于第三方应用程序。这个想法是,为了使用一个应用程序,你需要加载相应的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
.
推荐阅读
- java - Spring Boot 与嵌入式 tomcat 的战争导致 jsps 的性能问题
- php - Json 数据到 PHP
- c++ - C ++在范围结束之前删除函数指针
- zapier - 缺少变量时的Zapier Python增量
- node.js - Mongoose/mongdb 没有正确更新数据库
- visual-studio-code - VS Code错误Enoent:没有这样的目录,lstat'/snap/code'
- arrays - 使用 @foreach 的 @foreach 中的数组中的所有项目
- css - 如何禁用视频上的“单独窗口中的视频”图标
- excel - 关于多页:除非所有页面都有输入,否则禁用commandbuttom2
- r - 计算所有列中每组的平均值