Search
Write a publication
Pull to refresh
4
0
Michael Elin @vanelm

Consulting Network Engineer

Send message

Создание собственного API на Python (FastAPI): структура проекта, SQLAlchemy PostgreSQL, миграции и первые модели таблиц

Level of difficultyMedium
Reading time21 min
Views48K

Приветствую всех, друзья! Наша последняя статья по созданию собственного API на FastAPI вызвала огромный интерес, и за это я искренне благодарен.

Ранее мы рассматривали базовые аспекты работы с FastAPI: различные типы запросов, их валидацию и обработку, а также ответы на эти запросы. Однако, это лишь верхушка айсберга.

Уже на данном этапе код становится громоздким и сложным для понимания. К тому же, хранение данных в JSON‑файлах — это далеко не самый профессиональный подход. «Нормальные ребята» используют SQLAlchemy, причем асинхронно.

Сегодня мы займемся интеграцией асинхронной SQLAlchemy в наше FastAPI‑приложение. Для упрощения навигации и понимания кода я предложу структуру проекта, которую сам использую в каждом FastAPI‑приложении.

Отдельное внимание уделим миграциям с Alembic: что это такое и зачем они нужны. Конкретные функции для взаимодействия с базой данных мы будем рассматривать в следующей статье. Сегодня же займемся подключением, миграциями, описанием моделей таблиц и их созданием.

Читать далее

Google Colab вместо Jupyter Notebook: плюсы и особенности работы для новичков

Level of difficultyMedium
Reading time5 min
Views12K

Привет! Меня зовут Ольга Матушевич, я наставница на курсе «Аналитик данных» в Яндекс Практикуме. С Jupyter Notebook я впервые столкнулась шесть лет назад, когда начала изучать Python и анализ данных. И именно установка Jupyter Notebook стала самым сложным этапом моей учёбы — ни чистка данных, ни градиентный бустинг, ни бутстрэп не доставляли мне столько трудностей.

Если установка программного обеспечения даётся вам так же трудно, то эта статья для вас. В ней я рассказываю о не требующем установки сервисе Google Colab, сравниваю его с Jupyter Notebook и даю советы для лёгкого старта.

Читать далее

Предсказание выбытия насосов

Level of difficultyMedium
Reading time7 min
Views6K

Всем привет, меня зовут Богдан. В ML я начал свое посвящение осенью 2023 года и за этот год успел поработать над таким неоднозначным проектом как "Предсказание выбытия насосов". На данную тему на Хабре уже есть несколько статей, которые я в своё время нашел и опыт которых я пытался перенести в свой учебный big data пет проект :)
ссылки на других ребят тут: ссылка 1 и ссылка 2

Хочу сказать что в данной статье не будет кода, она будет посвящена размышлениям, неудачам и иногда смешным попыткам решить данную проблему. Ну а также наверное где-то я буду кидать ссылки на совершенно разные вещи и немного похвастаюсь нашим финальным решением и тем, к чему меня привело участие во всем этом.

Если вы хотите посмотреть на то как это реализовано под капотом, то добро пожаловать в репу на гитхабе
Здесь расписано множество вещей, которые я успел попробовать пока работал над этой задачей в них входят как удачные решения, так и не очень.

Читать далее

Новая библиотека для работы с JSON: json_db_lite

Level of difficultyEasy
Reading time3 min
Views4.7K

В процессе работы над новой статьей из цикла по FastAPI, я создавал примеры взаимодействия с базой данных через JSON, включая операции по извлечению, добавлению, изменению данных и другие.

В результате накопилось большое количество кода, который оказался избыточным, особенно с учётом того, что скоро я планирую перейти к описанию более серьёзного взаимодействия FastAPI с полноценной базой данных (SQLAlchemy с миграциями через Alembic). Поэтому я решил вынести весь код взаимодействия с JSON в отдельную библиотеку.

Так появилась json_db_lite.

Эта библиотека будет полезна в контексте FastAPI как отправная точка для знакомства с взаимодействием FastAPI и баз данных. В других проектах функционал json_db_lite также может оказаться весьма полезным.

Читать далее

Как сотрудники могут саботировать работу компании

Reading time6 min
Views50K

Фото из архива УСС. Источник.

Мальчик играет в шпиона: представляет, как работает под прикрытием на чужой территории. Мужчина играет в шпиона: устраивается на должность технического директора в IT-компанию, чтобы снижать ее производительность, сохраняя видимость рвения и лояльности и оставаясь непойманым. Для тех, кто не саботажник: это история о том, как отсеять некомпетентных людей и получить максимальную отдачу от своей команды.
Читать дальше →

Безопасность в Django: защита от распространенных угроз веб-приложений

Level of difficultyEasy
Reading time39 min
Views11K

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

Читать далее

Как автоматизировать рассылку голосовых приглашений с помощью Exolve API и Python

Level of difficultyMedium
Reading time13 min
Views1.2K

В одном из моих любимых фильмов «О чем говорят мужчины», персонаж А. Демидова периодически произносит фразу «Вот поэтому я и не женюсь». И я как человек неженатый тоже иногда её произношу с отсылкой на фильм.

Но плох тот системный аналитик, который не подстелил себе соломки на будущее. Вдруг однажды и мне придется связать себя узами Гименея.

Поэтому я решил пофантазировать, как бы я мог оригинально пригласить гостей на свадьбу. Да так, чтобы сделать оригинальное гостям приглашение своими руками, а не просто отдать на откуп какой-то конторе.

Читать далее

Простой способ взаимодействия с Google Таблицами через Python (Gspread)

Level of difficultyEasy
Reading time13 min
Views18K

Друзья, привет. После последней публикации многие из вас выразили желание получить от меня пошаговые инструкции по работе с Google Таблицами (Google Sheets). Как вы догадались, вот инструкция.

Существует достаточно много методов взаимодействия с Google Sheets при помощи Python. Сегодня я рассмотрю, как мне кажется, самый простой и самый доступный модуль - Gspread.

Читать далее

Ускорение Python в 2 раза с помощью multiprocessing, async и MapReduce

Level of difficultyMedium
Reading time16 min
Views13K

Python действительно может считаться относительно медленным языком программирования по сравнению с некоторыми другими языками, такими как C++ или Java. Однако, существуют различные библиотеки и инструменты, которые позволяют ускорить выполнение счетных задач в Python. Рассмотрим как можно ускорить анализ данных в 2 раза!

Читать далее

Как заставить модуль Wemos D1 эффективно спать

Level of difficultyEasy
Reading time3 min
Views4.4K

Сравнительно давно написал на хабре несколько статей

Особенности создания программ в NODEMCU ESP8266 для «интернета вещей» / Хабр

Уменьшаем потребление ESP8266 при автономной работе с датчиками

Как уменьшить потребление wifi модулей в десять и более раз

о ESP8266 и способах уменьшения энергопотребления популярного модуля ESP12x.

За последнее время появилось много новых мало потребляющих модулей с протоколом BLE , но ESP8266 остается уникальным по простоте применения и низкой стоимости для реализации различных поделок IOT.

Обычно автономные устройства сбора данных и устройства сигнализации большее время находятся в состоянии сна.

Читать далее

Замена самых дешевых Wi-Fi реле Sonoff в освещении после 7 лет их использования в квартире

Level of difficultyEasy
Reading time6 min
Views21K

Семь лет назад, в 2017 году, я переделал обычную схему освещения в квартире, установив умные модули - для этого пришлось устанавливать распределительные коробки большего размера и частично менять проводку. Весь эксперимент проходил в двухкомнатной хрущевке и я описывал этот опыт на Хабре четыре года назад.

Уже тогда у меня были некоторые предпочтения: желание быть независимым от любых облачных сервисов; минимальная цена устройства; заводское изготовление этого модуля.

Тогда в 2017 году я наткнулся на двухканальные реле Electrodragon Relay Board ESP8266 (около 650 руб за 1 штуку сейчас) и одноканальные SONOFF BASIC R1 Wi-Fi (около 450 рублей за 1 штуку сейчас), а ещё тогда познакомился со свободной прошивкой Tasmota.

В комментариях к статье 2020 года, в которой описывал сделанную домашнюю автоматизацию было упоминание о том, что вместо умного дома лучше было потратить эти деньги на ремонт квартиры.

И вот, в конце 2023 года, решился на ремонт, который шел 16 недель и сжирал примерно по 22 593 ₽ рублей в неделю. Общая сумма затрат за период с 22.11.2023 по 13.03.2024 составила 361 491 ₽. Из них товаров куплено на 183 129 ₽, а работ выполнено на 173 862 ₽. При этом на умный дом затраты составили 19 939 ₽.

В этой статье хочу подробнее расписать именно про умный дом, потому что эта тема соответствует тематике Хабра.

Sonoff Wi-Fi на Аqara Zigbee

Импортозамещаем почту в 2024: обзор самых хайповых сервисов сезона

Level of difficultyEasy
Reading time13 min
Views19K

В то время как почты, чатики, звонилки и прочие шэрпойнты мирно крутились в облаках, сисадмины переехали на самоизоляцию и сонно решали инциденты, не вылезая из кровати. Но, внезапно, вся эта непотопляемая красота напоролась на айсберг санкций и начала медленно, но уверенно, тонуть.

В этой обзорной статье привожу наиболее актуальные средства спасения электронной почты в 2024-м году и их характеристики.

Читать далее

Отвлекать программистов от работы — гораздо страшнее, чем кажется на первый взгляд

Level of difficultyEasy
Reading time6 min
Views44K

Я всегда знал, что если отвлекать человека во время работы, это вредит делу. Но до конца не осознавал, насколько это серьёзная проблема. Особенно для разработчиков ПО.

В этой статье разбираемся, что такое погружение в работу и почему это так важно, как натренировать навык концентрации и перестать отвлекаться. 

Читать далее

Использование Annotated в Python

Level of difficultyMedium
Reading time8 min
Views15K

Всем привет. Ранее мы с вами разбирали универсальные типы в python. Продолжая тему подсказок типов, в данной статье, я расскажу о примерах использования Annotated из модуля typing. Если вы слышите о Annotated в первый раз, то для лучшего понимания, стоит ознакомится с PEP 593 – Flexible function and variable annotations.

Данный инструмент очень полезен, если вы разрабатываете различные фреймворки или библиотеки. И даже если вы занимаетесь написанием прикладного кода, то не будет лишним знать и понимать, что происходит "под капотом" фреймворков и библиотек использующих Annotated.

Читать далее

Как рисовать Sequence без боли и страданий в PlantUML

Level of difficultyEasy
Reading time12 min
Views28K

Привет! Меня зовут Настя, я старший системный аналитик в X5 Tech. Я рисую sequence-диаграммы каждый день на протяжении четырёх лет. За это время я прошла все круги ада по Данте, то есть попробовала разные инструменты для рисования этих самых диаграмм. Пока не встретила его – PlantUML. 

Что удивительно, инструмент довольно не новый, но тем не менее лучше него я пока не встречала. А ещё удивительно, что он не особо популярный. Когда мы запустили в управлении системного анализа первый воркшоп по PlantUML, за 3 минуты после анонса пришли 12 заявок от аналитиков разных грейдов – от Junior до Lead. 

В процессе подготовки материалов к воркшопу мы искали статьи и литературу, которые помогли бы дополнительно изучить sequence-диаграммы в PlantUML. Ничего интересного мы не нашли. 

На самих воркшопах участники часто говорили о том, что они пытались самостоятельно изучить PlantUML, но их пугало то, что нужно писать какой-то код и учить какой-то синтаксис. Документация достаточно обширная, но информации о том, как последовательно строить sequence почти нет. 

Поэтому и появилась эта статья. 

Почему PlantUML?

Мои мысли о Python in Excel

Level of difficultyEasy
Reading time12 min
Views17K

22 августа 2023 года компания Microsoft выпустила предварительную версию «Python in Excel». Я разработчик xlwings и автор книги O’Reilly Python for Excel, поэтому мне, разумеется, стало интересно её потестировать. Не следует судить книгу по обложке, поэтому я решил углубиться в изучение и записать обучающий курс LinkedIn Python in Excel: Working with pandas DataFrames. Параллельно я обнаружил много багов и других проблем, после чего отправил отчёты о них в GitHub. На текущий момент они уже или были разрешены, или хотя бы подтверждены/прокомментированы, и это потрясающе. Мне остаётся лишь мечтать, чтобы столь же легко можно было бы сообщать о багах в мире Office.js и VBA.

Так что же я думаю о Python in Excel?

Читать далее

Лучшие библиотеки Python для Data Science в 2024 году

Level of difficultyEasy
Reading time10 min
Views17K

Python — один из самых распространенных языков программирования в Data Science (третье место в опросе разработчиков StackOverflow). Популярность языка обусловлена наличием множества пакетов, которые можно использовать для решения различных задач в области науки о данных, включая машинное обучение, предварительную обработку данных, анализ данных и их визуализацию.

Новичку в этой области может быть сложно понять, с чего начать, особенно при таком обилии ресурсов — в Python имеется более 100 000 встроенных библиотек, и выучить их все просто невозможно. Именно поэтому в этой статье мы рассмотрим 8 самых полезных библиотек Python для Data Science.

Читать далее

Максимально точное увеличение разрешения изображений: билинейная аппроксимация

Level of difficultyMedium
Reading time8 min
Views6K

В этом выпуске: улучшение билинейной интерполяции, больше методов апскейлинга, второй этап сравнения методов с точки зрения наименьшей ошибки, как применять шейдеры к отдельным изображениям, как уменьшить звон на изображении и многое другое...

Продолжаем увеличивать апскейл...

Как я сделал свою Arduino

Level of difficultyMedium
Reading time7 min
Views20K

Привет, читатель!

Сегодня существуют десятки вариантов платы Arduino. Их популярность обусловлена, по моему мнению, фреймворком Wiring для микроконтроллеров, распространением «шилдов» (нет необходимости паять компоненты) и, что самое удобное, загрузкой программ по USB. В рамках этой статьи расскажу, как я создал небольшую оценочную плату для микроконтроллера и добавил в нее загрузочную запись.

По своей сути, большинство «ардуинок» (оценочных плат) — это печатные платы с минимально необходимыми для микросхемы деталями. Такие прототипы позволяют сделать работу с чипами удобнее, проще и приятнее. Однако бывает, что под контроллер либо нет подобных решений, либо они универсальные и имеют некоторые неточности. С этим можно бороться, но возникают различные костыли, поэтому я решил разработать оценочную плату для отечественного чипа. Самому чипу посвящена отдельная статья на Хабре, его я использую в паре пет-проектов. Приступим к разработке!
Читать дальше →

Когда проснулся и узнал, что существуют PWA

Level of difficultyEasy
Reading time8 min
Views15K

Всем привет. Меня зовут Антон, я фронтендер в Сбере. Если вы ещё не осваивали технологию PWA, но хотели бы — или вдруг срочно понадобилось, — то я вам помогу и объясню, что это и как начать с ней работать. 

Читать далее

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity