在Django中添加到INSTALLED_APPS的目的是什么?

时间:2017-12-06 22:18:48

标签: python django

大多数文档只是告诉您将每个应用的名称添加到Django项目设置中的INSTALLED_APPS数组中。这有什么好处/目的?如果我创建2个应用程序,但在INSTALLED_APPS数组中只包含一个应用程序名称,我将获得哪些不同的功能?

1 个答案:

答案 0 :(得分:4)

Django使用INSTALLED_APPS作为所有地方的列表来查找模型,管理命令,测试和其他实用程序。

如果您制作了两个应用(例如myappmyuninstalledapp),但INSTALLED_APPS中只列出了一个,则会注意到以下行为:

  1. myuninstalledapp/models.py中包含的模型永远不会触发迁移更改(或生成初始迁移)。您无法在数据库级别与它们进行交互,因为它们的表从未创建过。
  2. myapp/static/中列出的静态文件将作为collectstatic或测试服务器的静态文件服务的一部分被发现,但myuninstalledapp/static文件不会被发现。
  3. myapp/tests.py内的测试会运行但myuninstalledapp/tests.py不会。
  4. 不会发现myuninstalledapp/management/commands/中列出的管理命令。
  5. 所以,我们欢迎您在Django项目中拥有未安装应用程序的文件夹(您甚至可以使用python manage.py startapp创建它们)但只知道某些自动发现Django实用程序将无法正常工作对于那个应用程序。