Почему проекты Django являются пакетами Python? - PullRequest
2 голосов
/ 05 января 2010

Почему они не просто каталоги? Любой хороший совет говорит, чтобы как можно больше было в приложениях, а не связывать их с проектом. Сама возможность импортировать приложение как project.application препятствует этому. Почему django-admin.py вообще создает __init__.py? Проект совершенно полезен без него. В чем оправдание?

Ответы [ 4 ]

2 голосов
/ 05 января 2010

У нас есть один проект, который мы "подкласс" своего рода для других проектов. Итак, у нас есть другие проекты, которые импортируют вещи из основного проекта. Я думаю, что для нас это обеспечивает общее пространство имен, которое содержит все другие приложения.

Мы могли бы перейти к пакету со всеми нашими приложениями отдельно от проектов, я полагаю. Наша система выросла, а не была запланирована.

Так что я думаю, что мой ответ - это хорошее корневое пространство имен. (для наших нужд):)

1 голос
/ 05 января 2010

Ядром проекта являются settings.py и root urls.py. Оба эти модуля являются модулями Python, поэтому их необходимо каким-то образом импортировать. Вы можете поместить каталог проекта непосредственно в путь Python и, таким образом, сделать его импортируемым как модули верхнего уровня, но это, возможно, еще более плохая практика. Лучше, чтобы проект был пакетом, а настройки и URL были модулями внутри него.

1 голос
/ 05 января 2010

Насколько мне известно, не требуется, чтобы приложения находились внутри пространства имен проекта. Просто они будут на $ PYTHONPATH. Как таковые, они могут использоваться любым другим кодом в системе, которая имеет тот же PYTHONPATH.

0 голосов
/ 05 января 2010

Я думаю, что идея заключается в том, что вы можете повторно использовать приложения, но вам не нужно перемещать их из проекта, в котором они были изначально созданы.Если проект не был пакетом, вам необходимо скопировать / переместить приложение, которое вы хотите использовать повторно, в пакет Python.Поскольку сам проект является правильным пакетом Python, вы можете повторно использовать приложения в нем, не перемещая приложения в другое место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...