Как правильно заставить Intellij-idea закрыть сервер Flask dev? - PullRequest
3 голосов
/ 04 июля 2011

Я использую IDEA 10.5 для экспериментов с Flask. У Flask есть встроенный тестовый сервер (как у Django)

Когда я запускаю свой тестовый класс, сервер dev также запускается на порту 5000. Все хорошо. * Бег на http://127.0.0.1:5000/

Когда я нажимаю кнопку «Остановить процесс» (красный квадрат), я получаю сообщение о том, что процесс завершен: Процесс завершен с кодом выхода 143

Однако сервер все еще жив (отвечает на запросы), и я вижу, что у меня все еще запущен процесс python.

Очевидно, что это мешает мне сразу же запустить тест заново, мне нужно сначала убить процесс сервера.

Как вам удается одновременно завершить работу вашей программы и сервера?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

Это больше не происходит с более новыми версиями (протестировано с PyCharm 2.0)

0 голосов
/ 08 июля 2011

Полагаю, что происходит, когда вы запускаете приложение фляги, которое затем разветвляет сервер разработки как новый процесс. Если вы остановите приложение, разветвленный процесс все еще работает.

Это похоже на проблему, которая не может быть легко решена с помощью вашей IDE. Вы можете добавить что-то в свой основной файл, чтобы убить уже запущенный серверный процесс, прежде чем снова запускать приложение, но это выглядит ужасно.

Но почему бы вам просто не запустить свое приложение с app.run(debug=True) , как описано в flask doc ? Сервер будет автоматически перезагружаться при каждом изменении приложения, поэтому вам не нужно останавливать и перезапускать его вручную.

EDIT: Мне пришло в голову что-то немного странное: если вам просто нужен удобный способ убить сервер из IDE, все, что вам нужно сделать, это ввести синтаксическую ошибку в одном из мест, которые контролирует перегрузчик, сохранить файл и сервер захлебнется и умрет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...