Вроде легкие вопросы и ответы знаю правильные, но система считает иначе и правильные ответысчитает неправильными. Приходится выполнть по несколько раз. Это я не правильно делаю или тест так составлен? |
Искусство отладки
Отладка
Отладка — это процесс поиска и устранения ошибок (багов). Когда мы разрабатываем веб-приложения с помощью Django, у нас часто появляется необходимость знать значения переменных, отправленных в запросе AJAX.
Инструментами для отладки являются:
- Отладочная панель Django
- IPDB (интерактивный отладчик)
Отладочная панель Django
Это набор панелей, используемый для отображения различных сведений о запросе / ответе текущей страницы и раскрывающий больше подробностей при нажатии на панель.
Вместо того чтобы просто отображать отладочную информации в HTML комментариях, отладочная панель Django отображает его более продвинутым способом.
Установка отладочной панели Django
Чтобы установить отладочную панель Django, выполните следующую команду:
pip install django-debug-toolbar
После установки нам нужно сделать изменения в базовой конфигурации, чтобы увидеть отладочную панель Django.
Добавьте параметр debug_toolbar к переменной INSTALLED_APPS в файле settings.py:
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'user_profile', 'tweet', 'social.apps.django_app.default', 'tastypie', 'debug_toolbar', )
Это более чем достаточно для простого проекта Django. Отладочная панель Django будет автоматически корректировать себя, когда сервер запущен в режиме разработки.
Перезапустите сервер.Как вы можете видеть, в правой часть профиля пользователя есть панель. Отладочная панель Django имеет много панелей, из них есть некоторые, установленные по умолчанию, как мы видим на предыдущем скриншоте, а некоторые являются сторонними, которые могут быть установлены по желанию.
Теперь мы обсудим панели, установленные по умолчанию:
VersionPath: debug_toolbar.panels.versions.VersionsPanel. Эта панель показывает основную информацию, такую как версию Python, Django и других установленных приложений, если такая информация доступна
Использование ресурсов: Показывает потребление ресурсов Django на машине сервера.
Тайминг браузера: Показывает детали на клиентской стороне. Время запроса и ответа имеют жизненно важное значение для знания, может ли фрагмент кода быть оптимизирован, и можно посмотреть загрузку, если слишком большое отображение замедляет получаемые страницы.
SettingsPath:debug_toolbar.panels.Settings.SettingsPanel.
Список параметров которые определены в файле settings.py являются заголовками
Path: debug_toolbar.panels.headers.HeadersPanel
Эта панель показывает переменные фреймворка, начиная от переменных представлений, которые так же являются переменными ratancs; затем Cookies, Session, переменные GET, POST, они могут быть полезны при отладке форм отправки.
SqlPath: debug_toolbar.panels.sql.SQLPanel
Эта панель очень важна, так как содержит SQL-запросы, создаваемые к базе данных при запросе страницы. Это очень помогает во время масштабирования приложения, запросы могут быть здесь просмотрены и скомбинированы вместе, чтобы уменьшить промахи по базе данных и улучшить производительность запроса страницы.
Показывается также фрагмент кода, который делает SQL-запрос, что очень полезно при отладке приложения.
StaticFilesPath: debug_toolbar.panels.staticfiles.StaticFilesPanel
TemplatePath: debug_toolbar.panels.templates.TemplatePanel
Это показывает нам список шаблонов и контекста, связанного с данным запросом
CachePath: debug_toolbar.panels.cache.CachePanel
Если мы включили кэш. то здесь отобразятся детали кэш-попаданий по данному URL-адресу
SignalPath: debug_toolbar.panels.signals.SignalsPanel
Эта панель показывает список сигналов и их аргументов и получателей
LoggingPath: debug_toolbar.panels.logging.LoggingPanel
Если вы включили протоколирование, эта панель отобразит сообщения журнала, как показано на следующем скриншоте:
RedirectPath: debug_toolbar.panels.redirects.RedirectsPanel
Когда присутствует страница перенаправления на URL-адрес, включите ее для отладки промежуточной страницы. Как правило вы не можете отладить URL перенаправления, таким образом, по умолчанию эта функция отключена
IPDB - интерактивный способ перебора ошибок
Ipdb — интерактивный отладчик исходного кода для Python программ.
Выполните следующую команду, чтобы установить Ipdb:
pip install ipdb
Ipdb является интерактивным способом отладки приложения Python. После установки Ipdb, для использования его в любой функции, просто напишите следующий код:
import ipdb; ipdb.set_trace()
Эта магическая строка остановит вся выполнение Django, где этот код присутствует и даст вам активную консоль, где вы можете отыскать баги или проверить значение переменной в режиме реального времени.
Сочетания клавиш для ipdb (когда вы находитесь в активной консоли):
n: следующий элемент
p <variable>: Печатает значение
c: продолжить
s: шаг в подпрограмме
r: продолжать до конца подпрограммы
!<python command="">: Выполнить команду Python внутри активной консоли
Можно сделать больше, чем то, что рассматривается в настоящей лекции. Вам были даны основы отладки, которые мы собираемся использовать в наших проектах Django. Вы узнали, как войти и отладить наш код для лучшей и более эффективной практики кодирования. Мы также узнали, как использовать Ipdb для больших возможностей отладки.
В следующей лекции вы узнаете о различных способах развертывания наших проектов Django.
Контрольные вопросы
- Для чего необходимо использовать отладку?
- Какие команды доступны для интерактивного отладчика?
- Какие панели администратора и с какими функциями вы можете назвать?
- Что такое протоколирование?
- Какие категории модуля logging существуют?
Упражнения
Упражнение 1.
Установите панель MOngoDB
Упражнение 2.
Установите панель Template Profiler
Упражнение 3.
Упражнение 4.
Установите панель Template Timings
Список рефератов
- Особенности отладки web-приложений
- Обзор сторонних панелей отладки
- Расширенный обзор IPDB
- Искусство консольной отладки
- Журналирование при разработке веб-сервисов
- Фильтрация в работе веб-проектов
- Принципы промышленной веб-разработки
- Отладка веб-приложения и его учет при разработке технического задания
- Безопасность веб-приложения на этапе эксплуатации. Журналирование.
- Отладка кода как часть тестирования программного кода
Краткие итоги
- ознакомились с особенностями отладки Django
- рассмотрели понятие протоколирования
- научились использовать интерактивный отладчик
- ознакомились с отладочной панелью
- Рассмотрели назначение каждой из отладочной панелей
- Ознакомились с Модулем Python logging
- Изучили функции для ведения журналов отчетов
- рассмотрели основные команды IPDB
- рассмотрели способ установки отладочной панели
- реализовали код перенаправления пользователя