0

各サイトには独自のドメイン、データベース、settings.py、urls.py、views.py などが必要です。私が理解している限り、それは不可能ですが、よくわかりません。

編集: jdi は、異なるアプリで異なる設定ファイルを使用することを提案しています。その方法を教えてください。追加の問題は、Webfaction を使用していて、既存の Django webapp を選択した後に次のエラーが発生することです。

このサイト、パス、アカウントを持つサイト アプリは既に存在します

だから私は知る必要があります、それはDjangoまたはWebfactionの制限ですか. Django のバージョンは 1.3 です

4

1 に答える 1

3

このプロジェクト構造は 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 はそのように設計されていません。サイトフレームワークを介して、異なるサイトに対して、同じプロジェクトで複数のプロセスを実行できるように設計されています。

于 2012-11-18T02:40:17.313 に答える