TinyDB est une base de données légère orientée document optimisée pour votre bonheur :) Elle est écrite en Python pur et n'a aucune dépendance externe. La cible sont les petites applications qui seraient époustouflées par une base de données SQL ou un serveur de base de données externe.
TinyDB est :
dict
) dans TinyDB.Pour plonger directement dans tous les détails, rendez-vous sur la documentation TinyDB. Vous pouvez également discuter de tout ce qui concerne TinyDB, comme le développement général, les extensions, ou présenter vos projets basés sur TinyDB sur le forum de discussion.
TinyDB a été testé avec Python 3.8 - 3.13 et PyPy3.
Ce projet est en mode maintenance. Il a atteint un état mature et stable dans lequel aucune nouvelle fonctionnalité ou modification architecturale significative n’est prévue. Cela dit, il y aura toujours des versions pour des corrections de bugs ou des fonctionnalités apportées par la communauté. Apprenez-en davantage sur ce que cela signifie en particulier ici.
> >> 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 ))
Qu'il s'agisse de signaler des bugs, de discuter d'améliorations et de nouvelles idées ou d'écrire des extensions : les contributions à TinyDB sont les bienvenues ! Voici comment commencer :