在每个youtube教程中,我都看到人们只需将“ app_name”添加到INSTALLED_APPS列表中。 昨天我开始了Django官方教程,他们建议使用“ app_name.apps.App_nameConf”表示法。 我想官方的方法是更好的方法,记住其他语法并不难,我只想确定。因为东西以太的方式工作。 请给我一个简单易懂的答案,这样我也可以得到。谢谢!
答案 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的完整路径。
除非您知道自己需要它,否则不要在项目中使用它。