django - settings.py似乎加载了多次?

时间:2012-06-22 03:16:11

标签: django pycharm

编辑错误编辑 - 打印两次,而不是四次。

我把它放在我的settings.py

print 'ola!'

并在启动时“ola”打印出两次!这似乎是我的pycharm django项目有问题...任何想法为什么会发生这种情况?它不是循环或任何东西(我知道,无论如何)

喝彩!

YAY 根据评论,只知道为“rohit”的用户已确定可以在此处找到解决方案:https://stackoverflow.com/a/2110584/1061426〜请参阅有关禁用重新加载的评论。

注意我现在没有我的Django代码,所以我不知道noload会做什么。祝你好运,士兵们。

4 个答案:

答案 0 :(得分:7)

如果在settings.py中打印出线程ID,您会看到settings.py实际上是在两个不同的线程上加载的。

有关详细信息,请参阅this stackoverflow responsethis article

答案 1 :(得分:3)

实际上Django所做的是设置一个包装器。它基本上是一个对象(设置对象,如果你想这样),它允许你访问一些直接的setter,如settings.WHATEVER,所以看起来你访问settings.py direclty中的全局变量。

我真的不记得了,为什么导入会发生两次。当我在django-dynamic-settings上工作时,我调查了一次,它使用了与Django本身非常相似的方法。 无论如何,如果您对“魔术”感兴趣,可以从execute_from_command_line中的manage.py电话开始关注流程。

答案 2 :(得分:1)

Django使用settings.py做了一些奇怪的事情,它会执行多次。我习惯看到它进口两次,不知道为什么在PyCharm中你得到了四次。你必须小心设置带有副作用的语句在settings.py。

答案 3 :(得分:1)

至少twice since提出了一个密切相关的问题。我可以补充说Django核心开发人员rejected认为这是任何类型的Django错误;这是正常行为。

另见Graham Dumpleton的this