【问题标题】:Django - How to reload(library) in a django application?Django - 如何在 Django 应用程序中重新加载(库)?
【发布时间】:2012-05-24 00:41:03
【问题描述】:

我有一个使用 library.py 文件的 django 应用程序:

library.py

a=5

查看 1:

import library
print library.a  # prints 5

更新library.py文件并更改a=10后的某个事件

视图 2:

import library
reload(library) # Should refresh library for the entire project

然后我再次执行view 1

它仍然打印 5,为什么?

谁能解释一下,因为它应该打印10,因为我更新了值并重新加载了python manage.py runserver共享内存中的库

【问题讨论】:

    标签: python django shared-libraries reload


    【解决方案1】:

    应该刷新整个项目的库

    不,不应该。它只会在当前模块中重新加载它。并且不要使用它来重新加载项目的代码,根据您的部署方案使用正确的方式。

    【讨论】:

    • 为什么?图书馆是共享的。所以应该为所有人重新加载?
    • @YugalJindle 不,不应该。这就是reload 的工作方式。为每个模块重新加载它是非常糟糕的主意。如果您从模块中迭代某些内容并且此时模块被重新加载怎么办?你会遇到很多问题。而且这样的案例还有很多很多。还有一些很好的方法来重新加载(比如重新启动你的 dev-server / fcgi 进程),没有理由不使用它们。
    • 谢谢 - 我假设某些东西。也感谢您的建议!
    猜你喜欢
    • 2011-03-04
    • 2011-08-10
    • 1970-01-01
    • 2011-03-20
    • 2018-05-16
    • 2013-09-13
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多