Различные способы отладки приложения web2py
Поскольку я новичок в web2py, мне интересно, какие способы доступны для отладки приложения web2py. До сих пор я сталкивался со следующими сценариями:
Когда в приложении web2py возникает ошибка времени выполнения, генерируется тикет об ошибке, и обычно в тикете содержится обычно полезная информация.
однако иногда на странице доступно только простое сообщение об ошибке, например, "неверный запрос". вот и все. Так что было бы лучшим способом в этом случае отследить, что идет не так? Логирование? Если так, как мы это делаем правильно?
если не отображается явное сообщение об ошибке, но приложение не работает должным образом. Обычно я использую отладчик с контрольными точками, чтобы проверить это. Любое другое предложение?
Любой опыт / понимание очень приветствуется.
3 ответа
Вы можете обнаружить ошибки на уровне вашей модели или контроллера, добавив юнит-тесты. Это поможет сузить ваши усилия по отладке, особенно, когда система заявок на ошибки выходит из строя. К сожалению, документация web2py недостаточно подчеркивает важность модульных тестов. Вы можете запустить doctests на ваших контроллерах с
python web2py.py -T <application_name>
Поскольку уровни модели выполняются для каждого контроллера, вы, по крайней мере, найдете синтаксические ошибки в своем уровне модели.
Последняя версия имеет встроенный отладчик. Вы можете установить точки останова в своем коде и пройти через него.
Другие предложения хороши. Я бы также предложил отладчик Wing IDE. Это не очень дорого, и хорошо работает с Python вообще и web2py в частности.
Wing имеет возможность выполнять удаленную отладку - очень полезно, когда вы работаете через развертывание в производственном стиле с удаленными серверами приложений. Эта возможность спасла мой бекон сколько угодно раз.
Как отметил @Derek, есть встроенный отладчик для web2py
Вы можете установить точку останова из встроенного редактора Web2py (щелкнув "переключить точку останова") или установить ее вручную, как указано в приведенной выше ссылке.
Как только вы достигнете точки останова, вы можете открыть http://localhost:8000/admin/debug/interact (если выполняется локально для оценки любого выражения в этой точке.