2010-12-08 6 views
3

はI''mは、現在、複数のサイト&のサブドメインを持つ私のDjangoのインストールには、特定の構造を作成するための「ベストプラクティス」の方法を探しています。ベストプラクティス - Djangoのマルチサイト

私は次のことを考えた

/静的 /グローバル - グローバルJS - グローバルCSS、 - など。 /特定 - 特定JS - など。

/django - すべての特定のdjangoファイルが含まれています /apps - すべてのアプリケーションが含まれています /site1 - .pyファイル - spec IFICのアプリ(ジャンゴ/アプリケーション/アプリ/へのリンク) - 他のサイトの特定のファイル /SITE2 - の.pyファイル - 特定のアプリ(ジャンゴ/アプリケーション/アプリ/へのリンク) - 他のサイトの特定のファイル /サブドメイン。 SITE2 - の.pyファイル - 特定のアプリ(/ジャンゴ/アプリケーション/アプリへのリンク) - 他のサイトの特定のファイル

私は上記の、非常に合理的であるすべてのサイトを保つために、また、より少ない方法で考えますサブドメインは互いに分離しています。 これは「ベストプラクティス」ですが、一部の(批判的な)アドバイスは高く評価されます)

+0

あなたは一つのドメインからログインして別のサイトに物事を管理することを計画していますか? –

+0

私は1ドメインからすべてのウェブサイトを管理するつもりはありません。したがって、すべてのサイトに「管理」ページが必要ですが、「一部の」ページで同じニュースを共有できればいいと思います。一部のページは同じ会社のもので、ページのすべて(または一部)にいくつかのニュースを表示したいからです。これは、drupalのSITES機能を使用して実行できます。しかし、これは良い機能、確かに要件ではありません.. – Grezly

答えて

1

これは、マルチドメインの「サイト」をどのように構築して展開するかによって異なります。 http://docs.djangoproject.com/en/dev/ref/contrib/sites/ あなたが言及した「ニュース記事の共有」を実装できるようにすることができます: Djangoはsitesフレームワークを持っています。

しかし、マルチドメインdjangoを配備する場合、それらのすべてに単一のプロセス(たとえばmod_wsgiを使用して、それぞれに仮想ホストの項目があります)を使用することは些細なことではありません。 /サブドメイン。ジャンゴを展開する標準的な方法については

、すべてのDjangoプロジェクト(ドメインにつき1)はPythonで常駐する独自のvirtualenvの(またはそれらが同じライブラリを使用する場合は、1つの共有)、およびすべてのライブラリアプリケーションを持っていますvirtualenvのパス。

project1に

--coreapps/projectspecificapps ...

--templates/

を:あなたは、その後、たとえば、持っているでしょうので

すべてプロジェクトは、自己完結型でなければなりません

--media/

--sett ings.py

--urls.py

--manage。

のProject2

--coreapps/projectspecificapps ..

--templates/

--media/

--settings.py

PY - urls.py

--manage.py

プロジェクトの間で共有されているものはすべて、プロジェクトとは別に、自分のAPPである必要があります(例えば、virtualenv内のpythonパス上の任意の場所)。

多くのドメイン/サブドメインでは、まったく別の話です。あなたはdjangoミドルウェア(またはおそらくwsgiミドルウェア - そこにwsgiを使って興味深い解決策があるかもしれません)でドメイン部分を扱えるようにすることができます。そしてあなたはあなたのアプリ、テンプレート、etc ...ドメインを認識しなければなりません"どういうわけか、あなたの特定のニーズに応じてどういうわけか。

http://www.b-list.org/weblog/2006/sep/10/django-tips-laying-out-application/

Django and project/application organization

及びそれらが使用されている方法を確認する人気のアプリを見て: http://djangopackages.com/