在我修改视图和控制器中的代码后,Rails 不需要重新启动。Python web 框架中是否也存在这些功能?
我之前尝试过 Flask 和 Pyramid。我知道如果我只更改了它们就不需要重新启动template
,但如果我更改了views
(类似于controllers
in rails
)则必须重新启动它们。重新启动需要几秒钟才能完成。
我记得,rails
即使我在controllers
. 有没有人知道 Python Web 框架中是否也存在这样的功能?
在我修改视图和控制器中的代码后,Rails 不需要重新启动。Python web 框架中是否也存在这些功能?
我之前尝试过 Flask 和 Pyramid。我知道如果我只更改了它们就不需要重新启动template
,但如果我更改了views
(类似于controllers
in rails
)则必须重新启动它们。重新启动需要几秒钟才能完成。
我记得,rails
即使我在controllers
. 有没有人知道 Python Web 框架中是否也存在这样的功能?
Pyramid 有一个选项可以在更改文件后自动重启服务器:
pserve development.ini --reload
我确信每个项目文档都为您的问题提供了分析器
Django 也可以(你的问题中没有要求)
Rails 实现了开发时重载,如下所示。有两种机制在起作用。
显然,这有一些局限性。如果您的代码将内容存储在全局变量中,那么 Rails 不会在请求结束时清除它们,因此如果您的全局变量不断增长,您将在开发过程中泄漏内存。重新加载还会导致生产中的开发在语义上的细微差别。而像
scope :older_than_one_year, where('date < ?', 1.year.ago)
在开发中按预期工作(因为模型在每次请求时重新加载,导致 1.year.ago 不断重新评估),它在生产中无法按预期工作(因为 1.year.ago 只评估一次,因此如果您的应用程序已经运行了一年,那么该范围实际上转换为2年前)。
我不知道是否可以在 Python 中实现某些东西,我不熟悉 Python 的即时类创建/修改/删除功能,或者它是否有任何类似于 const_missing 的钩子。