TinyDB ist eine leichte, dokumentenorientierte Datenbank, die für Ihr Glück optimiert ist :) Sie ist in reinem Python geschrieben und weist keine externen Abhängigkeiten auf. Das Ziel sind kleine Apps, die von einer SQL-DB oder einem externen Datenbankserver umgehauen würden.
TinyDB ist:
dict
) speichern.Um direkt in alle Details einzutauchen, schauen Sie sich die TinyDB-Dokumente an. Sie können im Diskussionsforum auch über alles diskutieren, was mit TinyDB zu tun hat, z. B. allgemeine Entwicklung und Erweiterungen, oder Ihre TinyDB-basierten Projekte vorstellen.
TinyDB wurde mit Python 3.8 - 3.13 und PyPy3 getestet.
Dieses Projekt befindet sich im Wartungsmodus. Es hat einen ausgereiften, stabilen Zustand erreicht, in dem keine wesentlichen neuen Funktionen oder architektonischen Änderungen geplant sind. Allerdings wird es weiterhin Veröffentlichungen für Bugfixes oder von der Community beigesteuerte Funktionen geben. Was das konkret bedeutet, erfahren Sie hier.
> >> 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 ))
Ob Fehler melden, Verbesserungen und neue Ideen diskutieren oder Erweiterungen schreiben: Beiträge zu TinyDB sind willkommen! So fangen Sie an: