Heim  >  Artikel  >  Backend-Entwicklung  >  TinyDB ist eine leichtgewichtige Datenbank, die ausschließlich in Python geschrieben ist.

TinyDB ist eine leichtgewichtige Datenbank, die ausschließlich in Python geschrieben ist.

WBOY
WBOYnach vorne
2023-05-15 13:19:061276Durchsuche

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

TinyDB ist eine schlanke Datenbank, die in reinem Python geschrieben ist, mit insgesamt nur 1800 Codezeilen und ohne externe Abhängigkeiten.

Das Ziel von TinyDB besteht darin, die Schwierigkeiten bei der Verwendung von Datenbanken für kleine Python-Anwendungen zu verringern. Für einige einfache Programme ist es besser, TinyDB zu verwenden, da es die folgenden Eigenschaften aufweist: # 🎜🎜##🎜 🎜#

Lightweight: Der aktuelle Quellcode umfasst 1800 Zeilen Code (ca. 40 % der Dokumentation) und 1600 Zeilen Testcode.
  • Kann nach Belieben migriert werden: Die Datenbankdatei wird im aktuellen Ordner generiert, es ist kein Dienst erforderlich und kann nach Belieben migriert werden.
  • Einfachheit: TinyDB erleichtert Benutzern die Verwendung, indem es eine einfache und saubere API bereitstellt.
  • In reinem Python geschrieben: TinyDB benötigt weder einen externen Server noch irgendwelche Abhängigkeiten von PyPI.
  • Funktioniert mit Python 3.6+ und PyPy3: TinyDB funktioniert mit allen modernen Versionen von Python und PyPy.
  • Leistungsstarke Skalierbarkeit: Sie können TinyDB einfach erweitern, indem Sie Middleware schreiben, um das Verhalten des Speichers zu ändern.
  • 100 % Testabdeckung: Keine Erklärung erforderlich.
  • 1. Vorbereitung

Bevor Sie beginnen, müssen Sie sicherstellen, dass Python und pip erfolgreich auf Ihrem Computer installiert wurden.

Bitte wählen Sie eine der folgenden Methoden, um den Befehl zum Installieren von Abhängigkeiten einzugeben:

1. Windows-Umgebung Öffnen Sie Cmd (Start-Ausführen-CMD).

2. MacOS-Umgebung Öffnen Sie das Terminal (Befehl+Leertaste, um das Terminal aufzurufen).

3. Wenn Sie den VSCode-Editor oder Pycharm verwenden, können Sie direkt das Terminal am unteren Rand der Benutzeroberfläche verwenden.

pip install tinydb

2 Abfragebeispiel

Eine DB-Datei initialisieren:

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

Dadurch wird eine Datenbankdatei mit dem Namen „db.json“ im aktuellen Ordner generiert.

Daten darin einfügen:

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

Wie Sie sehen, können wir Wörterbuchdaten ohne Verarbeitung direkt in die Datenbank einfügen. Das Folgende ist die Batch-Einfügungsmethode:

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

Alle Daten abfragen:

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

Zusätzlich zu .all() können wir auch eine for-Schleife verwenden, um die Datenbank zu durchlaufen:

from tinydb import TinyDB
db = TinyDB('db.json')
for item in db:
 print(item)
# {'count': 7, 'type': 'apple'}
# {'count': 3, 'type': 'peach'}
#🎜 🎜#Wenn Sie nach bestimmten Daten suchen müssen, können Sie Query() verwenden:

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'}]

Daten aktualisieren:

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')

Daten löschen: # 🎜🎜#

Daten löschen Sie können auch ähnliche bedingte Anweisungen verwenden:

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

Löschen Sie die gesamte Datenbank:

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

3 Erweiterte Abfrage

#🎜 🎜#Zusätzlich zu Punktoperatoren für den Zugriff auf Daten können Sie auch natives Diktat verwenden, um auf die Darstellung zuzugreifen:

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

Diese beiden Schreibmethoden sind gleichwertig.

Zusätzlich zu den gängigen Abfrageoperatoren (==,

, ...) unterstützt TinyDB auch where-Anweisungen:

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

Dies entspricht: #🎜 🎜#

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

Diese Syntax bietet auch Zugriff auf verschachtelte Felder:

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

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'}]}]

Überprüfen Sie, ob ein einzelnes Element in der Liste enthalten ist: # 🎜🎜#

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

TinyDB unterstützt auch logische Operationen ähnlich wie 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'))

Die Einführung von TinyDB finden Sie hier. Sie können auch die offizielle Dokumentation besuchen, um weitere Verwendungsmethoden zu sehen:

#🎜 🎜#​

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

​​

Ich möchte vor allem etwas machen, das auf TinyDB basiert. Für Studenten der Speicheroptimierung, Sie Sie können das Kapitel „Speicherung und Middleware“ ausführlich lesen.

Das obige ist der detaillierte Inhalt vonTinyDB ist eine leichtgewichtige Datenbank, die ausschließlich in Python geschrieben ist.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen