Django IDE: как запустить devserver в редакторе?

Я пытаюсь разработать простой плагин для редактора Editra для разработки django. Прямо сейчас он может создавать проекты и приложения Django из редактора. Редактор основан на wxPython, и я хочу запустить devserver из редактора, показать простую форму с возможностью остановить или убить / перезапустить сервер.

Цель состоит в том, чтобы минимизировать необходимость выполнения повторяющихся задач в консоли / оболочке. Моя причина в том, что я работаю в компании, работающей только в Microsoft, где вы редко делаете вещи, используя командную строку. Продавать django сложно, когда я вхожу в командную строку или из командной строки, чтобы запустить / перезапустить сервер, syncdb, выполнить миграцию и т. Д. Чтобы упростить задачу продажи django моим коллегам и, надеюсь, упростить разработку (по крайней мере, для Разработчики django, которые любят работать в IDE) Я начал работу над плагином для Editra.

Прямо сейчас плагин добавляет пункт меню под названием Django с двумя подпунктами; создать проект и создать приложение. В работе находится контекстное меню, которое предоставит различные варианты в зависимости от содержимого редактируемого файла; щелкните правой кнопкой мыши в окне, содержащем settings.py, и вы сможете запустить devserver, вызвать syncdb, выполнить миграцию, если установлен южный порт, создать суперпользователя и т. д. Правой кнопкой мыши щелкните файл views.py, чтобы получить варианты, помогающие создавать представления или шаблоны., в файлах models.py или генерации admin.py и т. д.

Единственное, что я не могу понять - как запустить / убить / перезапустить devserver из приложения. Что мне действительно нравится, так это маленькое окно с двумя кнопками; остановить или перезапустить, что будет - остановить или перезапустить devserver. Или кнопка воспроизведения и остановки внутри редактора делает то же самое. Проблема заключается в управлении процессом devserver из приложения.

Если у кого-нибудь есть информация об этом, я был бы очень признателен. Любая помощь, вклад, комментарии или идеи приветствуются.

С уважением, Томас Вехольт

1 ответ

Решение

Я думаю, вы захотите использовать модуль подпроцесса Python для запуска и уничтожения процесса на сервере dev: http://docs.python.org/library/subprocess.html

Вы, вероятно, больше всего заинтересованы в объекте Popen. С его помощью вы можете запустить и убить сервер разработки.

Другие вопросы по тегам