Django INSTALLED_APPS'polls'与'polls.apps.PollsConfig'

时间:2018-06-27 16:44:37

标签: django

在每个youtube教程中,我都看到人们只需将“ app_name”添加到INSTALLED_APPS列表中。 昨天我开始了Django官方教程,他们建议使用“ app_name.apps.App_nameConf”表示法。 我想官方的方法是更好的方法,记住其他语法并不难,我只想确定。因为东西以太的方式工作。 请给我一个简单易懂的答案,这样我也可以得到。谢谢!

4 个答案:

答案 0 :(得分:0)

您是对的,遵循官方的方法是一种正确的方法,因为创建的视频教程或第三方博客可能引用的是django的旧版本,而现在已弃用这种方法。

祝你一开始好运!

答案 1 :(得分:0)

polls.apps.PollsConfig是更新,更明确的方式,它更好地允许同一应用程序进行多种配置。

polls起作用的原因是polls/__init__.py可能具有

default_app_config = 'polls.apps.PollsConfig'

行。

答案 2 :(得分:0)

您必须激活模型,并且Django需要知道您已安装应用程序。 因此,在settings.py中,您需要在INSTALLED_APPS主题中添加“ polls.apps.PollsConfig”,因为在您的app.py文件中,您可能已经定义了一个PollsConfig类:

在settings.py

INSTALLED_APPS = [
  'polls.apps.PollsConfig,
  'django.contrib.admin',
  '<other app...>',
]

在apps.py

class PollsConfig(AppConfig)
    name = 'polls'

答案 3 :(得分:0)

INSTALLED_APPS中,可以指定此 django项目应用中使用的所有应用。

但是,您可以在一个项目中创建多个应用。默认情况下,这将在根项目目录中产生单独的目录名称。

由于所有应用程序都位于项目根目录中,因此只能在INSTALLED_APPS中指定其目录名称。

另一方面,我们可以指定项目子应用AppConfig的完整路径,而不依赖于自动发现/子应用位于项目根目录等。


一个项目中有多个应用?

是的,一个项目的多个应用程序通常与该特定项目紧密关联,因此无法在其外部使用。

主要思想是separation of concerns-将逻辑分为几个部分,每个部分负责项目应用程序的一部分。

当您的应用开始增长时,将添加更多不同的逻辑,models.py / views.py / forms.py等开始增长,使项目难以阅读和理解整体结构

即使在小型项目中-在组织事物方面也可能非常有用

组织django应用程序的方式有不同的样式,例如子应用程序目录应位于何处(例如,在根目录中或在具有项目名称的子目录中),而应用程序和设置目录可以不在此目录中根项目目录。在这种情况下,能够直接指定到AppConfig class的路径非常好,并且显式也更好,比隐式好。


default_app_config主要用于可重复使用的应用程序(打算供其他人分发和使用的应用程序),并发布到pypi。这样就只能在INSTALLED_APPS中添加其名称,而不是其AppConfig的完整路径。

除非您知道自己需要它,否则不要在项目中使用它。