私setup_environ()
はしばらく前にコマンド ラインから実行する 1 回限りの Python スクリプトを作成しましたが、これはカスタムの manage.py コマンド (私の好みの選択) としてはまったく適切ではありませんでした。それはすべてをうまく設定しました。この関数を非推奨にしたのは、django 以外の pythonistas がこのような魔法のようなもので djangonauts をからかって、汚れていると感じるのにうんざりしたためだと思います。非推奨の場合、代替手段は何ですか? たぶんこれは怠惰な質問ですが、同じ効果を得るために setup_environ の代わりに何を実行する必要がありますか? 関数をコピーしてスクリプトに貼り付けることができると思いますが、それが非推奨のポイントではなかったと思います。(明らかに、非推奨の関数を引き続き使用できますが、スクリプトをいくつかのバージョンの django で存続させたいと考えています)
21758 次
6 に答える
28
miki725の答えを拡張するには、以前に持っていた場合
from django.core.management import setup_environ
import fooproject.settings as settings
setup_environ(settings)
と置き換えるだけです
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fooproject.settings")
from django.conf import settings
設定が設定として読み込まれます。
Django 1.7 以降については、Ben Davis のソリューションを参照してください。
于 2014-01-15T22:45:02.950 に答える
21
Django 1.4 のリリース ノートdjango.conf.settings.configure()
では、設定を行うために使用することを公式に推奨しています。これは、すべてを「Pythonic」な方法で行う必要がある小さなスクリプトに適しています。DJANGO_SETTINGS_MODULE
ただし、より大きなプロジェクトがある場合は、個別の設定モジュール/パッケージとそのパスを環境変数に持つ Django アプローチを使用するのが好きです。これは で使用されるアプローチですmanage.py
:
# manage.py
# ...
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fooproject.settings")
# ...
リリース ドキュメントはここにあります。
于 2013-02-24T05:53:20.793 に答える
1
免責事項:私はDjango 1.8を使用しています
2セントを追加するだけです。このページに記載されているソリューションのいくつかを試しましたが、まったく機能しませんでした. 以下で共有している解決策を思いついたところです。
プロジェクトのルート フォルダーにいることを確認します。同じ場所にmanage.py
あります。
#make sure basic imports are in place
>>> import os,django
#set the specific django settings file
>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "main.settings.base")
# import your modules and use them just like you do in your
# web apps
>>> from apps.customers import models as c
# normal usage... for instance:
>>> dir(c)
['You', 'Will', 'See', 'Your', 'Models', ... ]
于 2016-02-25T20:34:31.033 に答える