Comment utiliser la base de données TinyDB dans Python

Comment utiliser la base de données TinyDB dans Python

Cet article couvrira un guide sur l'installation et l'utilisation du «Tinydb”Module qui peut être utilisé pour créer et gérer des bases de données au format de fichier JSON. Disponible en tant que module tiers pour les programmes Python, Tinydb est écrit en pur python et il est livré avec de nombreuses fonctions utiles qui peuvent être utilisées pour interroger et modifier les fichiers de base de données. Il ne prend pas en charge les requêtes de style SQL mais utilise sa propre API pythonique pour rechercher des fichiers de base de données. Tinydb ne vous oblige pas à créer un serveur de base de données et tout peut être directement accessible via des fichiers stockés sur un périphérique de stockage sans avoir besoin d'une connexion de serveur. Outre les documents ou les objets Python de type dictionnaire, il prend également en charge les tables afin que vous puissiez stocker des données dans plusieurs tables et garder chaque tableau indépendant des autres.

Installation de TinyDB dans Linux

TinyDB est disponible dans les référentiels officiels Ubuntu, vous pouvez donc l'installer à partir du gestionnaire de packages en utilisant la commande suivante:

$ sudo apt installer python3-tinydb

Vous pouvez installer Tinydb dans d'autres distributions Linux du gestionnaire de packages. Une autre méthode à installer Tinydb Dans Ubuntu et d'autres distributions Linux, c'est utiliser le «pépin" directeur chargé d'emballage.

Vous pouvez installer PIP Package Manager dans Ubuntu en utilisant la commande suivante:

$ sudo apt installer python3-Pip

Vous pouvez rechercher le gestionnaire de packages PIP dans les référentiels officiels de votre distribution Linux et l'installer à partir de là. Vous pouvez également installer PIP Package Manager en suivant les instructions d'installation officielles disponibles ici. Une fois PIP Package Manager installé sur votre système Linux, utilisez la commande suivante pour installer Tinydb module:

$ pip3 Installer TinyDB

Syntaxe et utilisation de base

Pour créer un nouveau Json Fichier de la base de données pris en charge par Tinydb, Utilisez les instructions Python suivantes:

de Tinydb import tinydb
db = tinydb ('db.JSON ')
Imprimer (DB)

La première instruction importe le module TinyDB principal principal afin que ses méthodes puissent être utilisées dans un programme Python. Ensuite, une nouvelle instance de la classe TinyDB est créée en fournissant un «.le fichier JSON "comme argument principal. Cette instruction créera une nouvelle base de données ou chargera une base de données JSON existante créée par TinyDB.

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

Depuis qu'une nouvelle base de données a été créée, il n'y a actuellement pas de documents ou de tables de données dans la base de données. Pour insérer un nouveau document (dictionnaire Python) dans le tableau, utilisez le code suivant:

de Tinydb import tinydb
db = tinydb ('db.JSON ')
db.INSERT ('name': 'John', 'Rank': 2)
db.INSERT ('name': 'Peter', 'Rank': 1)
Imprimer (DB)

La méthode «insert» peut être utilisée pour insérer des documents ou des dictionnaires dans la base de données. Vous devez fournir un dictionnaire comme argument avec votre paire de valeurs clés requise. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

Comme vous pouvez le voir dans la sortie, la base de données contient désormais deux documents, attribués au tableau "_default". Si vous ouvrez le «DB.Fichier JSON »Dans un éditeur de texte, il devrait ressembler à ceci:

Pour attribuer un document à un tableau spécifique, vous devrez d'abord créer un nouveau tableau. Vous pouvez créer une nouvelle table en appelant la méthode «table». Voici un exemple de code:

de Tinydb import tinydb
db = tinydb ('db.JSON ')
db.INSERT ('name': 'John', 'Rank': 2)
db.INSERT ('name': 'Peter', 'Rank': 1)
Tableau = DB.table («fruits»)
tableau.insert ('pommes': 50)
Imprimer (DB)

Comme vous pouvez le voir dans l'échantillon de code, la méthode «table» a été appelée pour créer une nouvelle table qui sera stockée dans la base de données. Vous avez juste besoin de fournir un nom pour cela comme argument. Une fois une nouvelle table créée, le reste de la procédure est le même. Au lieu d'appeler la méthode «INSERT» sur la base de données par défaut, vous appelez maintenant la méthode d'insert sur la table fraîchement créée.

Après avoir exécuté l'échantillon de code ci-dessus, vous devez obtenir la sortie suivante:

La base de données contient désormais deux tables. Si vous ouvrez la base de données dans un éditeur de texte, vous devriez voir une nouvelle table ajoutée à la base de données:

Notez que toutes les méthodes qui peuvent être appelées dans la base de données par défaut peuvent également être utilisées avec des tables.

Interroger des documents dans la base de données

Pour rechercher des documents dans la base de données, vous devrez importer la classe «Requête» à partir du module TinyDB et utiliser la méthode «Rechercher». Voici un exemple de code:

De Tinydb Import Tinydb, requête
db = tinydb ('db.JSON ')
db.INSERT ('name': 'John', 'Rank': 2)
db.INSERT ('name': 'Peter', 'Rank': 1)
q = query ()
résultat = db.Recherche (Q.name == 'John')
Imprimer (résultat)

Une nouvelle instance de la classe «Query» est créée, puis une méthode de recherche est appelée dans la base de données. En utilisant la notation de points, vous pouvez sélectionner une clé ou un champ de document et ajouter votre terme de recherche requis sur le côté droit. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

['name': 'John', 'Rank': 2]

S'il n'y a pas de correspondance, une liste vide sera retournée. Vous pouvez également appeler la méthode de recherche sur une table créée manuellement.

De Tinydb Import Tinydb, requête
db = tinydb ('db.JSON ')
db.INSERT ('name': 'John', 'Rank': 2)
db.INSERT ('name': 'Peter', 'Rank': 1)
Tableau = DB.table («fruits»)
tableau.insert ('pommes': 50)
q = query ()
résultat = tableau.Recherche (Q.pommes < 100)
Imprimer (résultat)

L'exemple de code montre l'utilisation de la méthode de recherche sur un tableau spécifique. Remarquez dans le code selon lequel un opérateur de comparaison différent ('<' sign) has been used to query the database. After running the above code sample, you should get the following output:

['pommes': 50]

Mise à jour et supprimer des documents

Pour mettre à jour un document existant dans la base de données, vous devez utiliser la méthode «mise à jour». Voici un exemple de code:

De Tinydb Import Tinydb, requête
db = tinydb ('db.JSON ')
db.INSERT ('name': 'John', 'Rank': 2)
db.INSERT ('name': 'Peter', 'Rank': 1)
q = query ()
db.Mise à jour ('Rank': 3, q.name == 'John')
Imprimer (DB.tous())

En utilisant la classe de requête expliquée ci-dessus, vous pouvez mettre à jour la valeur d'un champ existant dans la base de données. Passez la valeur à modifier comme premier argument à la méthode de mise à jour, puis passez la requête comme deuxième argument. La méthode «tout» peut être utilisée pour récupérer tous les documents disponibles dans la base de données. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante où le rang de «John» a été mis à jour à 3 à partir de 2:

['name': 'John', 'Rank': 3, 'name': 'Peter', 'Rank': 1]

Pour supprimer un document, vous devrez utiliser la méthode «supprimer» et la syntaxe de requête expliquée ci-dessus. Voici un exemple de code:

De Tinydb Import Tinydb, requête
db = tinydb ('db.JSON ')
db.INSERT ('name': 'John', 'Rank': 2)
db.INSERT ('name': 'Peter', 'Rank': 1)
q = query ()
db.Supprimer (Q.name == 'John')
Imprimer (DB.tous())

Vous devez passer une requête à la méthode de suppression afin que les documents associés puissent être appariés et supprimés de la base de données. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

['name': 'Peter', 'Rank': 1]

Conclusion

TinyDB offre de nombreuses fonctions de commodité et d'assistance pour créer et gérer des bases de données basées sur JSON. Bien que vous puissiez gérer les fichiers JSON à l'aide du module "JSON" dans Python, TinyDB est bien plus que cela et comprend un système de requête complet qui peut être utilisé pour récupérer les résultats rapidement avec des instructions de liner simple.