Maison >développement back-end >Tutoriel Python >TinyDB est une base de données légère écrite uniquement en Python.

TinyDB est une base de données légère écrite uniquement en Python.

WBOY
WBOYavant
2023-05-15 13:19:061299parcourir

TinyDB 一个纯Python编写的轻量级数据库

TinyDB est une base de données légère écrite en Python pur, avec seulement 1800 lignes de code au total et aucune dépendance externe.

Le but de TinyDB est de réduire la difficulté d'utilisation des bases de données pour les petites applications Python. Pour certains programmes simples, au lieu d'utiliser des bases de données SQL, il est préférable d'utiliser TinyDB car il présente les caractéristiques suivantes :

  • Léger : L'actuel. le code source contient 1 800 lignes de code (environ 40 % de la documentation) et 1 600 lignes de code de test.
  • Peut être migré à volonté : le fichier de base de données est généré dans le dossier actuel, aucun service n'est requis et peut être migré à volonté.
  • Simplicité : TinyDB facilite l'utilisation des utilisateurs en fournissant une API simple et propre.
  • Écrit en Python pur : TinyDB ne nécessite ni serveur externe ni aucune dépendance de PyPI.
  • Fonctionne avec Python 3.6+ et PyPy3 : TinyDB fonctionne avec toutes les versions modernes de Python et PyPy.
  • Puissante évolutivité : vous pouvez facilement étendre TinyDB en écrivant un middleware pour modifier le comportement du stockage.
  • Couverture des tests à 100 % : aucune explication nécessaire.

1. Préparation

Avant de commencer, vous devez vous assurer que Python et pip ont été installés avec succès sur votre ordinateur.

Veuillez choisir l'une des méthodes suivantes pour saisir la commande permettant d'installer les dépendances :

1. Environnement Windows Ouvrez Cmd (Démarrer-Exécuter-CMD).

2. Environnement MacOS Ouvrez Terminal (commande + espace pour entrer dans le Terminal).

3. Si vous utilisez l'éditeur VSCode ou Pycharm, vous pouvez utiliser directement le terminal en bas de l'interface.

pip install tinydb

2 Exemple simple d'ajout, de suppression, de modification et de vérification

Initialiser un fichier DB :

from tinydb import TinyDB
db = TinyDB('db.json')

. De cette façon, ce sera dans le dossier actuel. Un fichier de base de données nommé « db.json » est généré ci-dessous.

Insérez des données dedans :

from tinydb import TinyDB
db = TinyDB('db.json')
db.insert({'type': 'apple', 'count': 7})
db.insert({'type': 'peach', 'count': 3})

Comme vous pouvez le voir, nous pouvons directement insérer des données de dictionnaire dans la base de données sans aucun traitement. Voici la méthode d'insertion par lots :

db.insert_multiple([
 {'name': 'John', 'age': 22},
 {'name': 'John', 'age': 37}])
db.insert_multiple({'int': 1, 'value': i} for i in range(2))

Interroger toutes les données :

from tinydb import TinyDB
db = TinyDB('db.json')
db.all()
# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]

En plus de .all(), nous pouvons également utiliser une boucle for pour parcourir la base de données :

from tinydb import TinyDB
db = TinyDB('db.json')
for item in db:
 print(item)
# {'count': 7, 'type': 'apple'}
# {'count': 3, 'type': 'peach'}

Si vous devez rechercher des données spécifiques, vous peut utiliser Query() :

from tinydb import TinyDB
db = TinyDB('db.json')
Fruit = Query()
db.search(Fruit.type == 'peach')
# [{'count': 3, 'type': 'peach'}]
db.search(Fruit.count > 5)
# [{'count': 7, 'type': 'apple'}]

Mettre à jour les données :

from tinydb import TinyDB
db = TinyDB('db.json')
db.update({'foo': 'bar'})
# 删除某个Key
from tinydb.operations import delete
db.update(delete('key1'), User.name == 'John')

Supprimer les données :

Vous pouvez également utiliser des instructions conditionnelles similaires pour supprimer des données :

from tinydb import TinyDB
db = TinyDB('db.json')
db.remove(Fruit.count < 5)
db.all()
# [{'count': 10, 'type': 'apple'}]

Effacer toute la base de données :

from tinydb import TinyDB
db = TinyDB('db.json')
db.truncate()
db.all()
# []

Requête avancée

En plus. aux opérateurs point pour accéder aux données, vous pouvez également utiliser la notation native d'accès Dict :

# 写法1
db.search(User.country-code == 'foo')
# 写法2
db.search(User['country-code'] == 'foo')

Ces deux méthodes d'écriture sont équivalentes.

En plus des opérateurs de requête courants (==, , ...), TinyDB prend également en charge l'instruction Where :

from tinydb import where
db.search(where('field') == 'value')

Cela équivaut à :

db.search(Query()['field'] == 'value')

Cette syntaxe peut également accéder aux champs imbriqués :

db.search(where('birthday').year == 1900)
# 或者
db.search(where('birthday')['year'] == 1900)

Any méthode de requête :

db.search(Group.permissions.any(Permission.type == 'read'))
# [{'name': 'user', 'permissions': [{'type': 'read'}]},
# {'name': 'sudo', 'permissions': [{'type': 'read'}, {'type': 'sudo'}]},
# {'name': 'admin', 'permissions':
# [{'type': 'read'}, {'type': 'write'}, {'type': 'sudo'}]}]

Vérifiez si un seul élément est inclus dans la liste :

db.search(User.name.one_of(['jane', 'john']))

TinyDB prend également en charge les opérations logiques similaires à Pandas :

# Negate a query:
db.search(~ (User.name == 'John'))
# Logical AND:
db.search((User.name == 'John') & (User.age <= 30))
# Logical OR:
db.search((User.name == 'John') | (User.name == 'Bob'))

L'introduction de TinyDB est ici, vous pouvez également visiter leur documentation officielle pour voir Plus de méthodes d'utilisation :

​https://www.php.cn/link/8ff3fdef6f5144f50eb2a83cd34baa5d​​​

Surtout pour les étudiants qui souhaitent optimiser le stockage basé sur TinyDB, vous pouvez lire en détail le chapitre Stockage et middleware .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer