2009-07-22 5 views
1

저는 현재 장고 사이트에 대한 설명서를 찾고 있어요 : 여러 사이트와 컨텐츠를 연결하는 방법을 설명합니다같은 데이터를 사용하여 서로 다른 사이트에서 장고 프로젝트를 어떻게 설정합니까?

http://docs.djangoproject.com/en/dev/ref/contrib/sites/#ref-contrib-sites

합니다. 사용 된 예는 LJWorld.com과 Lawrence.com입니다.

위의 경우 Django 프로젝트 구조는 어떻게 생겼습니까? 각 사이트는 예를 들어, 그 자체 응용 프로그램입니다 : ljworld이 SITE_ID=1을 가지고 있으며, 로렌스가 SITE_ID=2있다

project/ 
    manage.py 
    settings.py 
    urls.py 
    ljworld/ 
     models.py 
     views.py 
    lawrence/ 
     models.py 
     views.py 

경우, SITE_ID 변수가 명시 적으로 ljworld/settings.pylawrence/settings.py에 설정해야합니까?

ljworld 또는 lawrence의 dev 서버를 어떻게 실행합니까?

는 업데이트 :

나는 위의 공유 내용으로이 개 사이트를 사용했다. 동일한 콘텐츠를 공유하는 n 개의 다른 사이트가있는 경우 수행해야 할 작업은 무엇입니까? n 개의 다른 서버에서 n 개의 다른 Django 프로젝트가 실제로 필요합니까? 모두 동일한 데이터베이스 서버에 연결되어 있습니까?

또한 웹 사이트에 영향을 미치는 settings.py를 변경해야한다면 수동으로 각 파일을 변경하는 것이 매우 지루할 것입니다.

답변

6

아니요, 각 사이트는 자체적으로 앱이 아닙니다. 각 사이트는 프로젝트입니다. 전체 아이디어는 (완전히 또는 부분적으로) 공유 된 콘텐츠로 다른 프로젝트를 갖는 것입니다. - 일반적으로 모두 동일한 DB 서버를 참조 것입니다하지만 당신은 일반적으로 프로젝트를 제공하기 위해 두 개의 웹 서버를 사용하는 것이

ljworld/ 
    manage.py 
    settings.py 
    urls.py 
    ljworld_specific_app1/ 
    ... 
lawrence/ 
    manage.py 
    settings.py 
    urls.py 
    lawrence_specific_app1/ 

: 그래서 당신은 같은 구조를 가지고 있습니다. 당연히 두 프로젝트간에 공유되는 응용 프로그램을 가질 수도 있습니다. 단지 서버의 PYTHONPATH 어딘가에 보관하십시오.

편집 : 물론

"두 웹 서버가"반드시 두 물리적으로 다른 서버를 의미하지 않는다. 동일한 웹 서버 인스턴스에서 실행되는 두 개의 가상 호스트가 될 수도 있습니다. 두 개의 프로젝트를 동일한 가상 호스트 아래 두 개의 서로 다른 디렉토리에 매핑 할 수도 있습니다.

공유 설정의 경우 공유 앱과 동일한 기술을 사용할 수 있습니다. PYTHONPATH 어딘가에서 사용할 수있는 공유 설정을 포함하는 global_settings 모듈을 가져 와서 각 settings.py에서 가져옵니다.

뭔가를 정말로 원한다면 다른 프로젝트를 모두 삭제하고 하나만 사용하고 설정을 변경하는 미들웨어를 만들 수 있습니다. 그러나 나는 그것을 반대한다.

관련 문제