2017-01-03 6 views
0

Когда вы заняты разработкой приложения, иногда легко увлечься и написать много моделей, несколько связанных друг с другом. Тогда вопрос заключается в том, как размещать сайт на всех моделях. Скажем, у вас есть следующие модели:Архитектура сайта Django

models: M1, M2, ..., M60 

Затем пришел к выводу, вы можете разделить их на приложение:

apps: AP1, AP2, ..., AP12 

Затем, через некоторое время вы могли бы понять, у вас есть различные проекты, с различными базами данных, бизнес-логика, целевой аудитории и т.д. (например, сайт, который имеет жилье, катание на лыжах, прокат оборудования, электронной коммерции и т.д. под одной площадке)

projects: P1, P2, P3 

вопрос в том, что лучше иметь сема ntically unrelated приложений в рамках одного проекта или связанных с группой приложений в рамках отдельных проектов?

Site 
| 
P1 - P2 - P3 
| ... 
---------------- 
| | | | 
AP1 AP2 AP3 AP4 
| ... 
--------------------- 
| | | | | 
M1 M2 M3 M4 M5 

ИЛИ:

Site 
| 
Solo_Project 
| 
---------------- 
| | | | 
AP1 AP2 AP3 AP4 
| ... 
--------------------- 
| | | | | 
M1 M2 M3 M4 M5 

Если первое, то, как следует один иметь мета settings.py, чтобы указать ROOT_URLCONF и все другие настройки, которые settings.py обычно заботиться о маршрутизации (базы данных и т. д.)

За исключением документов Django, я нашел Django tips: layout out an application полезных (пока недостаточно) показаний.

+1

Архитектура проекта - это инструмент, позволяющий управлять проектами. То, что работает лучше всего, зависит от проекта и рабочих процессов и предпочтений вашей команды. Без подробного изучения ваших проектов и организации, мало что можно сказать о том, что это не совсем основано на мнениях. – knbk

ответ

0

Очень субъективно.

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

В одном из моих предыдущих проектов было одно большое приложение (плюс функция типа корзины покупок, которую я добавил как отдельное приложение). Я думал о разделении основного приложения, но многие запросы и представления использовали все таблицы, поэтому в конце концов я решил, что это имеет больше смысла как одно большое приложение, а не разбивает его на несколько приложений без четкого различия в функциональности.

 Смежные вопросы

  • Нет связанных вопросов^_^