Python / Flask:应用程序在关闭后运行

时间:2014-06-22 08:07:52

标签: python eclipse web-applications flask pydev

我正在开发一个简单的Flask Web应用程序。我使用Eclipse / Pydev。当我在处理应用程序时,由于代码更改,我必须经常重启此应用程序。这就是问题所在。当我运行应用程序时,我可以看到我的localhost上的帧,这很好。但是当我想关闭这个应用程序时,只需点击应该停止Eclipse中的应用程序的红色方块,有时(经常),旧版本的应用程序继续运行,所以我无法测试新版本。在这种情况下,唯一有用的是强制关闭Windows任务管理器中的每个进程。

您能否告诉我如何解决此问题?提前谢谢。

编辑:这可能会有所帮助:很多时候,我必须运行两次应用程序。否则我无法连接。

3 个答案:

答案 0 :(得分:1)

这实际上不应该发生在最新版本的PyDev上(即:自PyDev 3.4.1:http://pydev.org/history_pydev.html,PyDev应该杀死主进程的所有子进程)。

那么,您可以查看您使用的是哪个PyDev版本吗?

如果您使用的是PyDev的最新版本,则可以使用Ctrl + Shift + F9默认终止/重新启动。

但是当你正在处理flask时,你应该可以通过设置use_reloader = True来使用它来自动重新加载代码更改,而无需做任何事情。

是的:我实际上没有测试过,但是它的文档说你可以设置该运行的重载标志(use_reloader = True) - 而PyDev甚至可以调试它(我会更好看一下)并在以后改进该领域的PyDev文档。

答案 1 :(得分:1)

我遇到了同样的问题并解决了。我认为这可能会有所帮助。

当我们在本地运行基于Flask的站点时,将其分配给一个TCP端口:5000和默认IP:127.0.0.1:5000

有时,即使关闭程序或终止代码,TCP连接仍然保留。因此,该想法是终止TCP连接。您可以从命令提示符( cmd

进行操作

要遵循的两个步骤:
1。有关正在运行的TCP连接,请参阅进程ID( PID )。
转到cmd并输入:

netstat -ano

enter image description here

  1. 按PID杀死进程。为此命令: taskkill / f / im [PID] 。下面显示了示例。

    taskkill / f / im 7332

答案 2 :(得分:0)

我发生了类似的事情。我使用的是CherryPy而不是Flask,但我的解决方案可能仍然适合您。通常,浏览器会在本地保存网页,以便每次访问网站时都不必重新下载它们。这称为缓存,虽然它对普通的Web用户非常有用,但对于应用程序开发人员来说这可能是一个真正的痛苦。如果您经常生成应用程序的新版本,则您的浏览器可能会显示已缓存的应用程序的旧版本,而不是最新版本。我建议每次重新启动应用程序时清除该缓存,或者完全禁用缓存。