Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Python Заметки»

Python Заметки
422
811
31
5
488
Интересные заметки и обучающие материалы по Python

Контакт: @paulwinex

⚠️ Рекламу на канале не делаю!⚠️

Хештеги для поиска:
#tricks
#libs
#pep
#basic
#regex
#qt
#django
#2to3
#source
#offtop
Подписчики
Всего
2 211
Сегодня
+1
Просмотров на пост
Всего
274
ER
Общий
12.4%
Суточный
9.86%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 2 из 422 постов
Смотреть все посты
Пост от 26.10.2026 12:02
53
0
1
Теперь внешние биндинги, обертки для SQLite и другие библиотеки для Embedded хранения.

▫️peewee
Это легкая синхронная ORM для реляционных баз. Поддерживает как SQLite так и другие БД.

▫️TortoiseORM
Еще одна реляционная ORM, на этот раз асинхронная. Очень похожая на DjangoORM.

▫️RocksDB
Key-value база данных. По версии dbdb.io она даже популярней чем SQLite среди Embedded. Но python-биндинг почемуто давно не развивается.

▫️zodb
Спецефичная база объектная данных на основе pickle. Это отображение python-объектов в файл.
Никаких моделей ORM или SQL. База данных представляет собой единый граф, где есть единственный корневой объект (обычно словарь). Всё, что вы хотите сохранить, вы просто кладете внутрь этого словаря. Посмотрите туториал, выглядит необычно.

▫️TinyDB
Документо-ориентированная БД, работает с файлами JSON.

▫️Vedis
Попытка повторить интерфейс key-valye базы данных Redis но как Embedded, без внешних сервисов. К сожалению проект давно не обновляется.

▫️unqlite
Обертка для key-value базы данных UnQLite от компании Symisc.

▫️py-lmdb
Биндинг для key-value базы данных LMDB (Lightning Memory-Mapped Database). Быстрая, но выглядит посложней.

Обычно в моих проектах реляционная БД подходит больше.
Я остановился на peewee+sqlite для десктопа (синхронный код). Для миграций peewee-moves.
Для локальных асинхронных веб-сервисов TortoiseORM+SQLite, Aerich для миграций.

Для неструктурированных данных я бы взял unqlite. Быстрая, удобный api, есть транзакции.

А что вы используете для Embedded баз данных? Может посоветуете что-то получше? Обычные SQL, Key-Value, и более спецефичного назначения.

#libs
Пост от 19.10.2026 12:04
115
8
3
А вы задумывались о том, сколько бывает разных баз данных? Я не про хранилища, а про разные движки. Сайт База банных баз данных поможет вам офигеть от их количества.

А нашел я этот сайт в поисках реализации Embedded базы для проекта.

Embedded - встроенное в приложение, не требующее внешних процессов и сетевых сервисов.

Как вообще в Python обстоят дела с записью данных? Рассмотрим стандартный набор.

▫️pickle
Этот модуль умеет сериализовать Python-объекты в файл и потом из файла десериализовать обратно в память. Непереносимый между разными версиями интерпретатора, не структурирован и не является базой данных или библиотекой хранения в привычном смысле.
Обычно используется для передачи данных между сабпроцессами. Не рекомендуется что-то хранить так долгосрочно.

▫️json
Поддержка популярного формата записи данных JSON. Стандартный, широко распространён, но не очень быстрый и тоже не структурирован.

▫️xml
Аналогично JSON, но только формат XML.

▫️configparser
Чтение и создание файлов INI. Популярно для конфигов, особенно на Windows.

▫️tomllib
Библиотека только для чтения файлов toml, в частности для чтения pyproject.toml. Запись не поддерживает. Для записи потребуется поставить пакеты tomli-w или tomlkit.

Эти модули удобны для работы с конфигами вашего приложения. Можно было бы добавить сюда еще YAML, но он не входит в стандартную поставку.
И как по мне, для хранения данных приложения эти библиотеки не очень подходят.

▫️sqlite
Вот это уже настоящая Embedded реляционная база данных.
Используя обычные SQL запросы можно развернуть однофайловую базу данных. Поддерживает ACID, WAL, индексы, JSON-поля и другие обычные функции баз данных.
Учитывая особенность, у этой БД нет средств горизонтального масштабирования, всё находится в одном файле. Нет понятия прав доступа и юзеров, это контролируется правами доступа к файлу.
Вероятно, это самая распространенная база данных в мире, так как является стандартом в очень многих приложениях. Мобильные приложения на Android и iOS, десктоп приложения вроде Telegram, Steam, браузеры и другие, где надо хранить данные локально.

Таже часто видел её как замену бд приложения во время тестов, с указанием записи только в RAM. Но я не поддерживают такой способ. Она, конечно, совместима, но не настолько чтобы доверять таким тестам на 100%.

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

#libs
👍 3
🔥 1
Смотреть все посты