TinyDB — это легкая документо-ориентированная база данных, оптимизированная для вашего удобства :) Она написана на чистом Python и не имеет внешних зависимостей. Целью являются небольшие приложения, которые могут быть уничтожены SQL-DB или внешним сервером базы данных.
TinyDB — это:
dict
) в TinyDB.Чтобы погрузиться во все детали, перейдите к документации TinyDB. Вы также можете обсудить все, что связано с TinyDB, например, общие разработки, расширения или продемонстрировать свои проекты на основе TinyDB на дискуссионном форуме.
TinyDB был протестирован с Python 3.8–3.13 и PyPy3.
Этот проект находится в режиме обслуживания. Он достиг зрелого, стабильного состояния, когда значительные новые функции или архитектурные изменения не планируются. Тем не менее, по-прежнему будут выпускаться исправления ошибок или функции, внесенные сообществом. Подробнее о том, что это означает, в частности, читайте здесь.
> >> from tinydb import TinyDB , Query
> >> db = TinyDB ( '/path/to/db.json' )
> >> db . insert ({ 'int' : 1 , 'char' : 'a' })
> >> db . insert ({ 'int' : 1 , 'char' : 'b' })
> >> User = Query ()
> >> # Search for a field value
>> > db . search ( User . name == 'John' )
[{ 'name' : 'John' , 'age' : 22 }, { 'name' : 'John' , 'age' : 37 }]
> >> # Combine two queries with logical and
>> > db . search (( User . name == 'John' ) & ( User . age <= 30 ))
[{ 'name' : 'John' , 'age' : 22 }]
> >> # Combine two queries with logical or
>> > db . search (( User . name == 'John' ) | ( User . name == 'Bob' ))
[{ 'name' : 'John' , 'age' : 22 }, { 'name' : 'John' , 'age' : 37 }, { 'name' : 'Bob' , 'age' : 42 }]
> >> # Negate a query with logical not
>> > db . search ( ~ ( User . name == 'John' ))
[{ 'name' : 'Megan' , 'age' : 27 }, { 'name' : 'Bob' , 'age' : 42 }]
> >> # Apply transformation to field with `map`
>> > db . search (( User . age . map ( lambda x : x + x ) == 44 ))
> >> [{ 'name' : 'John' , 'age' : 22 }]
> >> # More possible comparisons: != < > <= >=
>> > # More possible checks: where(...).matches(regex), where(...).test(your_test_func)
> >> table = db . table ( 'name' )
> >> table . insert ({ 'value' : True })
> >> table . all ()
[{ 'value' : True }]
> >> from tinydb . storages import JSONStorage
> >> from tinydb . middlewares import CachingMiddleware
> >> db = TinyDB ( '/path/to/db.json' , storage = CachingMiddleware ( JSONStorage ))
Сообщайте об ошибках, обсуждайте улучшения и новые идеи или напишите расширения: вклад в TinyDB приветствуется! Вот как начать: