このプロジェクト構造は Django 1.4 用ですが、コンセプトは同じままです
単一のプロセスではなく、そのすべてを行うことができます。必要なすべてのライブラリの共有セットを保存できる、プロジェクト用の単一の virtualenv を作成します。次に、サイトごとに異なる設定ファイルを作成し、それぞれが異なる 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 はそのように設計されていません。サイトフレームワークを介して、異なるサイトに対して、同じプロジェクトで複数のプロセスを実行できるように設計されています。