私は Django の buildout を使って遊んでいます。プロジェクトとアプリケーションを展開するための主なインストール方法として buildout を使用したいと考えています。この文脈では、各アプリケーションにビルドアウトとプロジェクトが含まれているのが最善でしょうか? ビルドアウトはどのレベルで適用する必要がありますか?
ありがとう、
トッド
私が通常設定する方法は次のとおりです。
buildout_dir/
+ bootstrap.py
+ buildout.cfg
+ ...
+ <project_name>/
+ settings.py
+ templates/
+ media/
+ ...
とにかく、ビルドアウトは(私の場合)単一のプロジェクトに関連付けられることが多いため、django プロジェクトをビルドアウト内に直接保存します。ちなみに、ビルドアウト構成でdjangorecipeを使用しています。
私が作成するアプリケーションは単純な卵で、次のようなレイアウトになっています。
django-<app_name>/
+ setup.py
+ <app_name>/
+ __init__.py
+ models.py
+ ...
しかし、自己完結型のビルドアウトであるアプリも見てきました。Jacob Kaplan-Moss はそれについての記事を書いています。
私は常に、必要なすべての依存関係をフェッチするプロジェクトごとにビルドアウトを作成します。これは単純な卵である可能性がありますが、mr.developerを使用したgit(hub)からの内部依存関係でもあります
アプリごとのビルドアウトは必要ないと思います。djangoの設定構成(開発、本番など)ごとに一致するbuildout.cfgを用意しておくとよいでしょう。
ビルドアウトはプロジェクトフォルダーに適用されるだけで、依存関係は自動的に含まれます(mr.developerを使用する場合はカスタマイズ可能です)。
また、bootstrap.pyを含めることは、私の意見では少し古風です。私は常にvirtualenv+pipinstallzc.buildoutを実行します。これは、プロジェクトフォルダー自体で実行することも、外部で実行することもできます(例:〜/ virtualenvs / myproject-123)
プロジェクト (Web サイト) ルートに常に少なくとも 2 つまたは 3 つのビルドアウト構成があります。
/
|- buildout.cfg # contains bas configuration used by other cfg files
|- development.cfg # adds ton of eggs used only in development and generates manage script using djangorecipe
|- production.cfg # most of the time it contains versions and generates django script using djangorecipe
私にとっては、すべてのアプリとすべてのプロジェクトにビルドアウトを与えます。プロジェクトのビルドアウトは、まあ、サイトをセットアップするためのものです。含む:
apache/nginx 構成ファイルの生成 (collective.recipe.template)
おそらくcronジョブ
別のガンコーンなどを実行したい場合は、おそらくスーパーバイザー。
すべてのアプリにはビルドアウトもあります。ここでの目標は、特にテスト用に分離された環境を簡単にセットアップできるようにすることです。アプリをデプロイする必要はありません。開発サーバーを実行し、テストを実行するのに十分なセットアップを行うだけで済みます。
私にとってビルドアウトとは、分離 (virtualenv など) とインストール (pip など) とプロジェクトの自動化です。アプリには主に最初の 2 つを使用します。そして、サイトの3つすべて。