Как отлаживать команды Django в PyCharm
Я знаю, как запускать команды с помощью PyCharm (Инструменты -> Выполнить manage.py Task), но я бы также хотел отлаживать их, включая мои команды и команды стороннего приложения.
4 ответа
Вы можете отладить пользовательскую команду администратора / управления Django в PyCharm, создав пользовательскую запись сервера Django в меню "Run/Debug Configuration":
- Нажмите
Edit Configurations...
, - Нажмите знак плюс и выберите
Django server
, - Заполните
Name
как угодно, очиститеHost
а такжеPort
поля, проверьтеCustom run command
и введите название вашей команды справа от флажка. - Введите любые дополнительные аргументы командной строки в отдельное поле
Additional options
, не добавляется в команду запуска. - Нажмите ОК.
Теперь установите точку останова, выберите новую конфигурацию в меню "Run/Debug Configuration" и нажмите кнопку "Debug". И вуаля!
Так как очистка Host и Port не приведет к выполнению команды вообще (PyCharm 5), я нашел решение использовать конфигурацию запуска Python вместо сервера Django. заполнить Script
с вашим скриптом manage.py, другими параметрами в Script Parameters
и настройте свою среду, такую как Working directory
,
Я объясняю, используя мою следующую настраиваемую команду Django:
python manage.py execute_algorithm -f input_data.json
Шаги по настройке команды Django: Шаг: На панели инструментов Django перейдите к:
Выполнить> Изменить конфигурации
Щелкните значок «+» в левом верхнем углу, чтобы создать новую команду> выберите «Сервер Django» из раскрывающегося списка.
Заполните следующие данные:
Имя : любое подходящее имя, которое вы хотите дать этой конфигурации, например, execute_algorithm_command
Хост : очистить поле
Порт : по умолчанию 8000, очистите .
Пользовательская команда запуска : установите этот флажок. Укажите здесь имя вашей команды. Вы можете получить это от
. например, значение: execute_algorithm
Дополнительные параметры : все, что есть, после имени команды. значение: -f input_data.json
После установки ipdb (pip install ipdb) поместите эти строки в точку отладки:
import ipdb
ipdb.set_trace()