如何在IntelliJ IDEA中正确关闭Flask开发服务器?

2 投票
2 回答
1212 浏览
提问于 2025-04-16 20:46

我在使用IDEA 10.5进行Flask实验。Flask有一个内置的测试服务器(就像Django一样)。

当我启动我的测试类时,开发服务器也会在5000端口启动,一切正常。 * 正在运行于 http://127.0.0.1:5000/

当我点击“停止进程”按钮(红色方块)时,系统会显示进程已完成的信息: 进程以退出代码143结束。

但是服务器仍然在运行(可以响应请求),我发现仍然有一个Python进程在运行。

显然,这让我无法立即重新启动测试,我必须先结束服务器进程。

你们是怎么做到让程序和服务器同时结束的呢?

2 个回答

0

在新版本中,这个问题已经不再出现了(我测试的是PyCharm 2.0)。

0

我想发生的情况是,你启动了你的 Flask 应用,这个应用会启动一个新的开发服务器进程。如果你停止了应用,那个新进程仍然在运行。

这看起来是个问题,可能在你的开发环境中不容易解决。你可以在主程序里加点东西,让它在重新启动应用之前先杀掉已经在运行的服务器进程,但这样做似乎不太好。

不过,为什么不直接用 app.run(debug=True) 来启动你的应用呢?在 Flask 文档中有说明。这样每次你修改了应用,服务器会自动重载,你就不需要手动停止和重启它了。

补充:我突然想到一个有点奇怪的办法:如果你只是想在开发环境里方便地杀掉服务器,你只需要在重载监控的某个地方引入一个语法错误,保存文件,服务器就会因为这个错误而崩溃 :)

撰写回答