5

Django設定には、データベース設定からインストール済みアプリまで、さまざまな目的で使用されるPython変数のリストが含まれています。再利用可能なアプリの多くでさえ、必要な設定の一部を作成します。

数十のサイトがあるため、すべてのプロジェクトの設定を管理することは困難です。

幸い、設定は変数を含むPythonモジュールにすぎないため、任意の魔法を使って必要な変数を設定できます。

どのような慣行に従っていますか、またはさまざまな関連設定を異なるファイルに分割するために使用できると思いますか?

どうやら、既存の企業慣行は、開発者が戦争を作成し、運用部門がそれをブルーフィッシュに叩きつけ、すべてのデータベース(およびそのような)運用関連のものを処理することです(ジェイコブの電子メールによると)。

settings.py既存の企業慣行を支援するために、どのようなダイナミックを作成できますか?

4

3 に答える 3

1

多くの場合、次のような設定ファイルを見てきました。

from localsettings import *

localsettings.pyデータベース接続やDEBUG値などで定義されます。localsettings.pyデプロイメント環境(開発/ステージング/本番など)ごとに異なり(または異なる場合があります)、他のすべてのものと一緒にソース管理に存在するわけではありません。

私が最近役立つと思ったものは、これを私の中に入れていますsettings.py

try:
    from localsettings import *
except ImportError:
    from default_localsettings import *

default_localsettings.py私はデフォルトの束を定義します(、などDEBUG = Trueと同じディレクトリにあるsqliteデータベースを使用しますdefault_localsettings.py)。

これは、設定が完了したら役に立たない場合がありますが、プロジェクトをソース管理からチェックアウトし、を使用してすぐに機能させることができ、runserver何も設定しなくても便利であることがわかりました。

于 2010-01-21T13:12:21.033 に答える
0

この設定オーバーライドの例に従って、開発、ステージング、および本番環境を処理します。

http://djangodose.com/articles/2009/09/handling-development-staging-and-production-enviro/

(Wayback Machineでアーカイブされたバージョン)

于 2010-01-21T18:59:07.930 に答える
0

個人的には、次のような設定でモジュールを作成するのが好きです。

project/
  settings/
    __init__.py
    settings.py
    local.py

ファイル__init__.pyは次のようになります。

from .settings import *
from .local import *

1レベル上のディレクトリを指すように変数BASE_DIRを採用しました。

この手順を使用すると、インポートメカニズムのようなものを採用する必要はありません。を使用するだけfrom django.conf import settingsです。local.pyのすべての設定は、settings.pyの設定を上書きします。

ただし、この考えられる解決策は、上記の他の回答と組み合わせることができます。

于 2021-12-10T13:13:32.793 に答える