異なる環境 (開発環境と本番環境) で変更されない設定で共通の構成が必要です。グローバルな settings.py ファイル (SQL 制限など) を設定できることはわかっていますが、私が知る限り、ピラミッドでは起動時に ini ファイルで特定の設定を見つける必要があります (テンプレート ディレクトリ パスなど)。
ピラミッドでこれを行うにはどうすればよいですか?
異なる環境 (開発環境と本番環境) で変更されない設定で共通の構成が必要です。グローバルな settings.py ファイル (SQL 制限など) を設定できることはわかっていますが、私が知る限り、ピラミッドでは起動時に ini ファイルで特定の設定を見つける必要があります (テンプレート ディレクトリ パスなど)。
ピラミッドでこれを行うにはどうすればよいですか?
PasteDeploy の INI の範囲を超えずに、いくつかの可能なオプションがあります。ただし、最初に、INI ファイル モデルの美しさは、さまざまな設定/構成で複数のファイルを作成する基本的な機能であることを認識してください。はい、それらを同期しておく必要がありますが、それらは単なる設定 (ロジックなし) であるため、克服できないものではありません。
とにかく、PasteDeployは、セクションによって継承されるデフォルトのセクションをサポートします[app:XXX]
。そのため、そこに共通の設定を配置して、別の[app:myapp-dev]
and[app:myapp-prod]
セクションを持つことができます。
# settings.ini
[DEFAULT]
foo = bar
[app:myapp-dev]
use = egg:myapp
[app:myapp-prod]
use = egg:myapp
set foo = baz
これは次の方法で実行できます
env/bin/pserve -n myapp-dev settings.ini
もう 1 つのオプションは、複数の構成ファイルを使用することです。
# myapp.ini
[app:myapp-section]
use = egg:myapp
foo = bar
# myapp-dev.ini
[app:main]
use = config:myapp.ini#myapp-section
foo = baz
# myapp-prod.ini
[app:main]
use = config:myapp.ini#myapp-section
これは次の方法で実行できます
env/bin/pserve myapp-prod.ini
PasteDeploy (ini ファイル) を使用したくない場合は、Python で何かを行うことができますが、この構成が単純であることには大きな利点があります。