В python все, что вы импортируете, известно коду, в котором оно импортировано, но обратное невозможно ...
Представьте, что у меня есть два файла
# a.py
def foo():
...
# b.py
from a import foo
def bar():
foo()
В b.py я знаю о foo
, но a.py не знает о bar
или даже о том, что b.py существует.
Теперь, когда у вас есть маршрутизатор, вы импортируете свои представления, которые импортируют модели и др. c. Ваше полное приложение может работать с этим. Но для того, чтобы Django узнал о вашем приложении, ему нужна хотя бы какая-то ссылка на него. INSTALLED_APPS
в настройках сообщает Django, какие приложения должны быть частью всего вашего Django проекта. По умолчанию в него входит несколько Django приложений. Не каждому проекту нужны все они, поэтому некоторые (или все) могут быть удалены. Аналогичным образом могут быть добавлены другие сторонние приложения.
Запуск Django команд управления, таких как migrate
или collectstatic
, будет работать только с приложениями, включенными в INSTALLED_APPS
.
PS: Никогда не обращайтесь к INSTALLED_APPS
в своем коде, а используйте реестр приложения через from django.apps import apps