這個項目結構是Django的1.4,但其中的概念保持不變
你可以做所有這一切,只是不能與一個單一的過程。爲您的項目創建一個virtualenv,它可以存儲您需要的每個lib的共享集。然後創建爲每個站點不同的設置文件,其中每個加載不同的Django的應用程序,全部位於項目內:
djangoProject
|- bin/
|- include/
|- lib/
|- manage.py
|- djangoProject/
|- settings_site1.py
|- settings_site2.py
|- settings_site3.py
|- wsgi_site1.py
|- wsgi_site2.py
|- wsgi_site3.py
|- site1_app/
|- models.py
|- views.py
|- urls.py
|- site2_app/
|- models.py
|- views.py
|- urls.py
|- site3_app/
|- models.py
|- views.py
|- urls.py
settings_site1.py(例如)
...
# or you could make multiple urls_siteX.py files in the root
ROOT_URLCONF = 'djangoProject.site1_app.urls'
...
INSTALLED_APPS = (
...
'djangoProject.site1_app'
)
wsgi_site1.py(例如)
...
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoProject.settings_site")
...
但是很坦白......所有這些都更加簡單如果你只是用多個django項目創建一個virtualenv就完成了。然後,你不必多帶分離您的應用程序:
projectEnv
|- bin/
|- include/
|- lib/
|- project1/
|- manage.py
|- project1/
|- project2/
|- manage.py
|- project2/
|- project3/
|- manage.py
|- project3/
你做到這一點無論哪種方式,我不認爲有必要想想試圖讓他們都到同一個進程中運行。 Django的設計目的並非如此。它旨在讓您通過網站框架在同一項目上針對不同站點運行多個流程。
來源
2012-11-18 02:40:17
jdi
「_one Django instance_」是否代表一個代碼庫(或_project_),或者說是一個_process_/_thread_? – Tadeck
我的意思是一個過程。 – DSblizzard
你能解釋一下你爲什麼要這樣做嗎?有沒有直接的方法來做到這一點,也沒有明顯的理由想要。 – jdi