如何在IntelliJ IDEA中正确关闭Flask开发服务器?
我在使用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 文档中有说明。这样每次你修改了应用,服务器会自动重载,你就不需要手动停止和重启它了。
补充:我突然想到一个有点奇怪的办法:如果你只是想在开发环境里方便地杀掉服务器,你只需要在重载监控的某个地方引入一个语法错误,保存文件,服务器就会因为这个错误而崩溃 :)