TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Pág. 60 de 85 · 1,014 posts
Рассказываем как легко узнать самое короткое расстояние между двумя точками земли Геодезическое расстояние — это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы. В примере узнали, что расстояние между городами Нью-Йорк и Техас 2507 километров. #python
Hashtags
Управление версионностью Python с помощью pyenv Инструмент pyenv предоставляет простой способ для переключения между различными версиями Python, придерживаясь принципов UNIX, согласно которым каждый инструмент должен эффективно выполнять свою задачу. Возможности pyenv включают: - Изменение глобальной версии Python для пользователя; - УправлениеверсиямиPython для индивидуальных проектов; - Переопределение версии Python через переменную среды; - Поиск и выполнение команд сразу из нескольких версий Python. #pyenv
Hashtags
Находим файлы по шаблону Основной фишкой модуля glob является удобная и лаконичная работа с поиском файлов по паттернам. Более того, можно даже пройтись по директориям рекурсивно. В одноименный метод glob передаётся шаблон для поиска файлов, а возвращается список с результатами. Все методы следуют механизму и правилам сопоставления паттернов в стиле Unix. Вообще модуль является встроенным, но в некоторых ситуациях импорт может выдать исключение. В таком случае надо просто его переустановить через пакетный менеджер pip. #glob
Hashtags
Хэширование Хэш — это целое число фиксированного размера, которое идентифицирует определенное значение. Каждое уникальное значение должно иметь свой собственный хэш. Для хэширования значений есть встроенная функция hash(). Используется она в основном для сравнения значений разных объектов — сравнивать хэши легче и выгоднее. Но изменяемые объекты по типу списков и словарей нельзя хэшировать — интерпретатор выбросит соответствующую ошибку. Здесь, кстати, есть две пасхалки. Хэш бесконечности равен перым цифрам числа Пи, а хэш Not a Number равен нулю. А еще случаются коллизии: например, хэши чисел -1 и -2 одинаковы. #hash
Hashtags
Разработка веб-приложений с использованием фреймворка Flask в Python Flask - это микрофреймворк для Python, предназначенный для создания веб-приложений. Он предоставляет базовыйнабор инструментов и функций для обработки HTTP-запросов, управления сессиями, работе с шаблонами и многого другого. Одной из главных черт Flask является его минималистичный подход, который позволяет разработчикам выбирать только необходимые им компоненты и расширения. В данном примере мы создаем простое веб-приложение с одним маршрутом "/", который возвращает приветственное сообщение. Flask также предоставляет множество расширений для добавления дополнительных функций, таких как аутентификация пользователей, работа с базами данных, обработка форм и многоедругое. Для более подробной информации рекомендуется изучить официальную документацию Flask. #python#flask
Отправляем запросы с HTTPX Интересный пакет для работы с веб-запросам. Как говорят сами разработчики, это HTTP клиент следующего поколения. Сравнивая с привычным requests, у httpx есть следующие преимущества: — Стандартный синхронный интерфейс, но также есть поддержка асинхронности — Поддержка HTTP/1.1 и HTTP/2 — Возможность отправлять запросы напрямую к WSGI и ASGI приложениям — Полная поддержка аннотаций типов — 100% покрытие тестами В общем, очень классная альтернатива большинству популярных пакетов, советую посмотреть их доки. Еще у них есть туториал для продвинутого использования. #httpx
Hashtags
Логирование Логировние является неотъемлемой частью разработки. Логи показывают информацию о текущем состоянии программы. И чем лучше выстроено логирование, тем проще будет разобраться в нестандартных ситуациях. Python поставляется для этих целей с гибким модулем logging. Для создания объекта Logger, вызываем функцию getLogger, передавая в нее имя логера. Созданный объект Logger предоставляет методы для записи сообщений разного уровня (DEBUG, INFO, WARNING, ERROR, CRITICAL), что удобно для поиска нужной информации с применением фильтров. По умолчанию в logging задан уровень WARNING, это означает, что сообщения уровня DEBUG и INFO будут игнорироваться при записи в лог. Изменить данное поведение можно с помощью метода setLevel, передав минимальный уровень, который будет отлавливаться. Для отправки логов в сконфигурированные места используются обработчики. Мы можем использовать уже существующие хэндлеры, либо создать свой класс обработчика, унаследовавшись от базового класса Handler. #logging
Hashtags
Понимание различий между операторами сравнения == и is Множество разработчиков сталкиваются с трудностями в отличии двух операторов сравнения: == и is, что может привести к неожиданнымошибкам в коде. Оператор ==сравнивает значения двух объектов, чтобы определить их равенство. В отличие от него, оператор isпроверяет, ссылаются ли две переменные на один и тот же объект в памяти, тем самым проверяя их идентичность. В Python из соображений эффективности происходит кэширование небольших чисел и коротких строк, что может привести к путанице и неочевиднымрезультатам при использовании этих операторов. #python
Hashtags
Используем Tortoise ORM для работы с базой данных в Python Tortoise ORM - это современный и эффективный инструмент для работы с базами данных в Python, который предоставляет асинхронный интерфейс доступа к данным. Он позволяет удобно выполнять операции CRUD (Create, Read, Update, Delete) с данными и облегчает работу с базами данных. Для использования Tortoise требуется установить соответствующий пакет через pip. После этого можно создавать модели данных, которые будут отображать структуру таблиц в базе данных. В этом примере мы создаем модель User, представляющую таблицу пользователей. Затем мы подключаемся к базе данных, создаем таблицу users и выполняем операции CRUD с данными пользователя. Tortoise ORM обеспечивает удобный и интуитивно понятный интерфейс для работы с базами данных в асинхронных приложениях Python. #python#orm#tortoise
FastAPI Template — лучший темплейт со всем что надо для старта на FastAPI! Одной из самых замечательных особенностей является то, что этот проект очень легко настраивается. Вы можете выбирать между различными базами данных и даже ORM, а можете даже сгенерировать проект без базы данных! В настоящее время поддерживаются SQLAlchemy 2.0, TortoiseORM, Piccolo и Ormar. Фичи темплейта: - Pydantic V2 (где это возможно, некоторые либы не поддерживают) - Вы можете выбрать между GraphQL и REST API - uvicorn и gunicorn - Поддержкаразличных баз данных и ORM - Опциональные миграции для каждогоORM (кроме сырых драйверов) - Различные CI\CD - Дополнительные демонстрационныероуты и модели (это поможет вам увидеть, как устроенпроект) - Сгенерированные тесты с почти 90% покрытием - Дополнительная поддержкаRedis, RabbitMQ, Kafka и taskiq - Опциональная интеграция с Prometheus, Sentry и Opentelemetry - Опциональный логгерLoguru Ссылку оставляю тут. #python#fastapi#template
Отлавливаем баги с assert При выполнении инструкции assert с логическим выражением, результат которого равен True, ничего не произойдет. Но если попробовать выполнить инструкцию assert с логическим выражением, которое равно False, то будет сгенерировано исключение AssertionError. Исключения AssertionError предназначены скорее для отладки. При написании программ на этапе разработки мы можем видеть, что делаем что-то не так (например, передали в метод некорректное значение). Также не нужно, к примеру, обрабатывать пользовательский ввод и пытаться обработать исключение AssertionError блоком try-except. Если в вашем коде будет очень много assert'ов, то это затронет и производительность программы. #исключения#assert
Hashtags
Очень удобный телеграм бот для написания кода! Мощная нейросеть в телеграм боте, которая поможет стажерам и начинающим, так и опытным спецам для написания, проверки и доработки кода. Если вы тоже решили начать изучать Python, то GigaChat поможет: модель объяснит основные понятия, ответитнавопросы об особенностях языка и синтаксисе. Идем тестировать — тут. #python#gigachat