13

編集 数え間違えました-4回ではなく2回印刷されます。

私はこれを私の中に入れましたsettings.py

print 'ola!'

起動時に「ola」が2回出力されます!これは私のpycharm djangoプロジェクトに何か問題があるようです...なぜこれが起こるのでしょうか? ループなどではありません(とにかく、私は知っています)

乾杯!

YAYコメントによると、「rohit」としてのみ知られているユーザーは、https ://stackoverflow.com/a/2110584/1061426 で解決策を見つけることができると判断しました。リロードの無効化に関するコメントを参照してください。

注意現在、Django コードを作成していないため、noload が何を行うかわかりません。がんばれ、兵士たち。

4

4 に答える 4

14

settings.py内でスレッドIDを印刷すると、settings.pyが実際に2つの異なるスレッドにロードされていることがわかります。

詳細については、このスタックオーバーフローの応答この記事を参照してください。

于 2013-03-16T20:31:33.877 に答える
4

実際に Django が行っているのは、設定の周りにラッパーを配置することです。これは基本的に、のようないくつかの直接セッターにアクセスできるオブジェクト (必要に応じて設定オブジェクト) であるためsettings.WHATEVER、settings.py ディレクトリのグローバル変数にアクセスするように見えます。

ただし、インポートが2回発生する理由は本当に覚えていません。Django自体と非常によく似たアプローチを使用するdjango-dynamic-settingsに取り組んだときに、一度調べました。execute_from_command_lineとにかく「魔法」に興味がある方は、 の呼び出しからの流れを追ってみてくださいmanage.py

于 2012-06-22T07:24:21.133 に答える
1

Djangoはsettings.pyでいくつかの奇妙なことを行い、複数回実行されます。私はそれが2回インポートされるのを見るのに慣れていますが、PyCharmで4回取得される理由はわかりません。settings.pyに副作用のあるステートメントに注意する必要があります。

于 2012-06-22T03:20:41.253 に答える