Когда я просто хочу, чтобы в какой-то момент произошел сбой кода, чтобы увидеть трассировку, я просто вставил в код «crash
».Поскольку он не определен, он потерпит крах, и я увижу след на странице исключений django.Кроме того, если я использую команду runserver_plus
, предоставленную django-extensions
(требуется пакет werkzeug
), тогда я получаю оболочку AJAX в каждом кадре трассировки стека .
Я понимаю вашу проблему, и я собираюсь предложить профессиональный метод для решения этой проблемы. То, что вы пытаетесь сделать, называется " отладка " , и для этого есть инструменты.
Быстрый запуск :
run pip install ipython ipdb
заменить оператор печати в вашем коде на import ipdb; ipdb.set_trace()
выполнить ваш код в runserver, он приостановит и вызовет оболочку python, куда вы можете отправить команду "up
", чтобы перейти к предыдущему кадру стека (код, который вызвал ваш код) .Наберите l
, если вы хотите увидеть больше строк кода.
Длительное начало : на самом деле я написал обзор инструментов, которые помогают отладкуpython и django .
Я не согласен с другими ответами, в которых предлагается добавить более сложное печатное утверждение. Вы хотите быть хорошим разработчиком: вы хотите использовать отладчик .Будь то werkzeug, pdb / ipdb или GUI, это не имеет значения, если вы можете его использовать.