Рубрики
Без рубрики

Отладка кода Python в терминале (с примерами)

Для одного из моих проектов я написал новую конечную точку в приложении на колбе. У моего проекта было много частей … Помечено с Python, учебником, начинающим, производительностью.

Для одного из моих проектов я написал новую конечную точку в приложении на колбе. У моего проекта было много предметов, которые построены друг на друга, поэтому я хотел протестировать различными способами и расширить мой ремень инструмента отладки Backeng. Вот 3 инструмента, которые я научился использовать и сейчас регулярно использовать для отладки кода Python. 🐍

Curl это инструмент командной строки для создания HTTP-запросов. Мне это нравится, потому что это быстрый путь к тестированию конечных точек делают то, что я ожидаю, но я нашел спутать с толку с толку.

Ломать анатомию скручиваемого

Пример Получить запрос на получение информации о конкретной студенческой информации

не является обязательным и обозначает Verbose Отказ С этим вы увидите все детали запроса и ответа, которые обычно скрыты, что может быть полезно для отладки.

-H обозначает Заголовок И это то, как указать дополнительные заголовки, которые включают в запрос, такие как токен аутентификации. В моем примере конечная точка может быть доступна только школьными сотрудниками, поэтому я добавил заголовок, чтобы указать, что я делаю внутренний запрос о происхождении. В противном случае, ответ запроса скажет, что я несанкционирован. (Не стоит знать, какой посланник для примера, но вот дополнительная информация, если вы любопытно: 1 & 2 )

Вам не всегда нужно указывать дополнительные заголовки (зависит от API или типа запроса), и вы можете включить много заголовков в ваш запрос.

Пример Запрос на почту, чтобы сделать новый студент

-X Пост выполнит почтовый запрос. -X Позволяет изменить файл HTTP-метода, используемый по умолчанию.

-d обозначает данные . С помощью этой опции вы можете указать, какие данные вы отправляете на HTTP-сервер, то то же самое, что делает браузер при заполнении формы и щелкните кнопку «Отправить». Существуют различные способы передачи данных в запросе CURL POST; В моем примере я отправляю JSON.

Content-Type Поскольку я отправляю данные, мне нужно позволить серверу знать Формат данных Отказ

Переводчик Python это инструмент, который поставляется с вашей установкой Python. Это интерактивный Реп в котором вы можете ввести и выполнить код Python. Я часто использую его для импорта и взаимодействия с файлами, которые я написал.

Знакомство

Service_venv iPython Как я запускаю переводчик. Но это чаще называют, набрав Python или Python3. (в зависимости от вашей установки). Примечание: IPython Обеспечивает дополнительные функции, чем стандартный переводчик Python, но показатели, которые я показываю, может быть выполнен в стандартном интерпретатере.

From app.models.student Import * Импортирует определенный файл для использования в интерпретатере. Я указываю путь каталога Student.py Файл: есть папка приложение В каталоге верхнего уровня, который содержит папку модели который содержит файл Student.py Отказ Импорт * утверждает, что я хочу все ( * ) в этом файле. Примечание. При импорте файла не добавляйте файл окончания.

Необходим оператор импорта; Без этого, в моем примере, Студентмодель и .спасти () будет неопределен, и переводчик Python бросит сообщение об ошибке.

Все установленные, и теперь я могу проверить, если мой код работает как ожидалось!

В этом примере я проверяю определенный метод get_students в переводчике Python.

Каковы некоторые расследования, которые я мог сделать? Возможно, я могу проверить, что происходит, когда пользователь проходит в строковом значении. Или я вижу, что произойдет, если пользователь проходит в действительное целочисленное значение, но студент с этим идентификатором не существует. Я возвращаю полезное сообщение об ошибке? В методе get_students. Я не сделал обработку ошибок … пока! По моему опыту, тестирование в переводчике Python было прекрасно для «ооооо» Да, нужно добавить это “реализацию.

3. Питиш

Pteest Является ли структура тестирования Python, которая может быть установлена быстро для проведения тестов и сообщать о результатах. Это также другой инструмент командной строки!

Вот пример теста интеграции, который тестирует, что вызов Get возвращает ожидаемые данные.

Я узнал, как писать тесты, изучая примеры, и я был смущен тем, какие ценности были в тесте, Как json_body Отказ Таким образом, я бы прошел тестирование деталей и добавить операторы печати, как в примере ниже. Но при запуске теста я бы не видел вывод операторов печати. 🧐

-s

python -m pteest как вызывать тестирование через переводчик Python. Service_venv специфичен для моей среды развития.

Тесты/интеграция/test_student_resource.py Это путь каталога файла, который я хочу проверить.

-s это звезда этого примера. Добавление этого Опция Позволяет все утверждения печати в тестах напечатаны в терминале при запуске тестов. Теперь я смогу увидеть ценность Печать (json_body) Отказ

Pytest – мощный инструмент с мощными функциями, но этот маленький -s Флаг помог мне отладить и научиться писать тесты.

И это все! Я взволнован, чтобы посмотреть, какие другие инструменты отладки я забираю, когда я продолжаю работать на Backend Projects.

Оригинал: “https://dev.to/scarlettperry/debugging-python-code-in-the-terminal-with-examples-d39”