Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中添加已安装的应用程序的目的是什么?_Python_Django - Fatal编程技术网

Python 在Django中添加已安装的应用程序的目的是什么?

Python 在Django中添加已安装的应用程序的目的是什么?,python,django,Python,Django,大多数文档只是告诉您将每个应用程序的名称添加到Django项目设置中已安装的应用程序数组中。这样做的好处/目的是什么?如果我创建两个应用程序,但只在我的已安装应用程序数组中包含其中一个应用程序的名称,我将获得哪些不同的功能?Django使用已安装应用程序作为查找模型、管理命令、测试和其他实用程序的所有位置的列表 如果您制作了两个应用程序(例如myapp和myuninstalledapp),但在INSTALLED\u apps中只列出了一个,您会注意到以下行为: myuninstalledapp/

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

Django使用
已安装应用程序
作为查找模型、管理命令、测试和其他实用程序的所有位置的列表

如果您制作了两个应用程序(例如
myapp
myuninstalledapp
),但在
INSTALLED\u apps
中只列出了一个,您会注意到以下行为:

  • myuninstalledapp/models.py
    中包含的模型永远不会触发迁移更改(或生成初始迁移)。您也无法在数据库级别与它们交互,因为它们的表从未创建过
  • myapp/Static/
    中列出的静态文件将作为collectstatic或测试服务器的staticfiles服务的一部分被发现,但是
    myuninstalledapp/Static
    文件不会被发现
  • myapp/Tests.py
    中的测试将运行,但
    myuninstalledapp/Tests.py
    不会运行
  • 将找不到
    myuninstalledapp/Management/commands/
    中列出的管理命令

  • 因此,实际上,欢迎您在Django项目中拥有未安装应用程序的文件夹(您甚至可以使用
    python manage.py startapp
    创建它们)但要知道,某些自动发现Django实用程序无法用于该应用程序。

    第1点的补充:不会为myuninstalledapp的ForeignKey指向的模型创建反向关系。