Django налагодження, tutorial, code q - a російська (ru)

Використання панелі інструментів Django Debug

Потім увімкніть його в встановлені додатки проекту, але будьте обережні - завжди корисно використовувати інший файл settings.py для таких додатків тільки для розробки і проміжних програм в якості панелі інструментів налагодження:

Панель інструментів Debug також використовує статичні файли, тому відповідну програму має бути також включено:

У деяких випадках також необхідно встановити INTERNAL_IPS в settings.py.

У urls.py. як припускає офіційна документація, наступний фрагмент повинен включати маршрутизацію панелі налагодження:

Зберіть статичну панель після установки:

Ось так, панель інструментів налагодження з'явиться на ваших сторінках проекту, надавши різноманітну корисну інформацію про час виконання, SQL, статичних файлах, сигналах і т. Д.

Крім того, для django-debug-toolbar потрібно, щоб теги Content-type text / html. і відображалися правильно.

Якщо ви впевнені, що налаштували все правильно, але панель інструментів налагодження все ще не відображається: використовуйте це «ядерне» рішення, щоб спробувати зрозуміти це.

Використання Python Debugger (Pdb)

Основним інструментом налагодження Django є pdb. частина стандартної бібліотеки Python.

Скрипт сценарію Init

Давайте розглянемо простий скрипт views.py.

Команда консолі для запуску сервера:

Очевидно, що Django кидає ZeroDivisionError при спробі завантажити контрольним аркушем, але якщо ми прикинемося, що помилка дуже глибока в коді, це може стати дійсно неприємним.

Установка точки зупину

На щастя, ми можемо встановити точку зупину для відстеження цієї помилки:

Команда консолі для запуску сервера з pdb:

Тепер в точці зупинки на сторінці буде викликатися запит (Pdb) в оболонці, який також зашкодить ваш браузер в очікує, стані.

Налагодження з оболонкою pdb

Прийшов час налагоджувати це уявлення, взаємодіючи з скриптом через оболонку:

В останньому рядку ми бачимо, що наше уявлення повернуло відповідь OK і виконало його як слід.

Щоб зупинити цикл pdb, просто введіть q в оболонку.

Розгляньте можливість написання додаткової документації, тестів, протоколювання і тверджень замість використання відладчика

Налагодження вимагає часу і зусиль.

  • Записуйте і запускайте тести. У Python і Django є відмінні вбудовані тестові середовища, які можуть бути використані для тестування вашого коду набагато швидше, ніж вручну за допомогою відладчика.
  • Написання належної документації для ваших функцій, класів і модулів. PEP 257 і Керівництво по стилю Python від Google надають хороші методи написання хороших докстерій.
  • Використовуйте Logging для виведення результатів з вашої програми - під час розробки і після розгортання.
  • Додайте assert іони в свій код в важливих місцях: зменшіть двозначність, зрозумійте проблеми по мірі їх створення.

Бонус: Напишіть доктрини для об'єднання документації і тестування!

Використання "assert False"

При розробці, вставляючи наступний рядок в свій код:

Призведе до того, що django підніме AssertionError зі значенням, наданим як повідомлення про помилку, коли цей рядок буде виконана.

Якщо це відбувається в поданні або в будь-якому коді, викликаному з уявлення, і встановлений DEBUG = True. в браузері буде відображатися повна і детальна таблиця стека з великою інформацією про налагодження.

Не забудьте видалити лінію, коли ви закінчите!