2017-01-03 4 views
0

앱을 개발하는 데 바쁜 경우 가끔씩 과장하기 쉽고 다소 많은 다양한 모델을 작성하기 쉽습니다. 그렇다면 문제는 모든 모델이 주어진 웹 사이트 레이아웃 방법입니다.Django 사이트 아키텍처

models: M1, M2, ..., M60 

당신은 다음 앱으로 그들을 나눌 수 있습니다 깨닫게 : 다음과 같은 모델이 있다고

apps: AP1, AP2, ..., AP12 

그런 다음, 잠시 후 당신은 당신이 다른 데이터베이스로, 다른 프로젝트를 실현할 수를, 비즈니스 로직, 타깃 등 (예를 들어, 모두 하나 개의 사이트에서 등 숙박, 스키, 장비 대여, 전자 상거래를 가지고 사이트)가 SEMA을 가지고 더 나은 경우

projects: P1, P2, P3 

질문은 특정 프로젝트 내에서 관련이없는 앱이나 별도의 프로젝트하에있는 그룹 관련 앱?

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

OR :

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

전자의 경우, 다음 하나는 settings.py 보통 (데이터베이스 라우팅 돌봐 ROOT_URLCONF 및 다른 모든 설정을 지정하는 메타 settings.py를하는 방법 , etc.)

Django 문서 이외에 유용한 (아직 부족한) 판독 값 Django tips: layout out an application을 발견했습니다.

+1

프로젝트 아키텍처는 프로젝트를 관리하기 쉬운 도구입니다. 가장 잘 작동하는 것은 프로젝트와 팀의 작업 흐름 및 환경 설정에 따라 다릅니다. 귀하의 프로젝트와 조직을 자세히 살펴 보지 않고는 그것이 전적으로 의견에 근거하지 않는다고 말하는 것은 거의 없습니다. – knbk

답변

0

매우 주관적입니다.

내 규칙은 다른 부분과 독립적으로 사용할 수있는 기능 집합을 제공한다면 별도의 응용 프로그램에 넣는 것이 좋습니다.

내 이전 프로젝트 중 하나에 하나의 큰 앱 (추가 앱으로 추가 한 장바구니 유형 기능 포함)이있었습니다. 주요 응용 프로그램을 분할하는 방법에 대해 생각했지만 많은 쿼리와 뷰가 모든 테이블을 사용하므로 최종적으로 기능이 명확하지 않은 여러 응용 프로그램으로 분할하는 대신 하나의 큰 응용 프로그램으로 더 이해하기로 결정했습니다.