So schreiben Sie innerhalb von Minuten eine einfache Spielzeugdatenbank in Python

MySQL, PostgreSQL, Oracle, Redis und viele mehr nennen Sie es einfach - Datenbanken sind eine wirklich wichtige Technologie für den Fortschritt der menschlichen Zivilisation. Heute können wir sehen, wie wertvoll Daten sind, und so kommt die Datenbank ins Spiel, um sie sicher und stabil zu halten!

So können wir auch sehen, wie wichtig Datenbanken sind. Eine ganze Weile habe ich darüber nachgedacht, meine eigene Spielzeugdatenbank zu erstellen, um sie zu verstehen, herumzuspielen und damit zu experimentieren. Wie Richard Feynman sagte:

"Was ich nicht schaffen kann, verstehe ich nicht."

Also, ohne weiter zu reden, lasst uns in den lustigen Teil springen: Codierung.

Beginnen wir mit dem Codieren…

Für diese Spielzeugdatenbank verwenden wir Python (mein Favorit ❤️). Ich habe diese Datenbank FooBarDB genannt (ich konnte keinen anderen Namen finden?), Aber Sie können sie so nennen, wie Sie wollen!

Importieren wir zunächst einige notwendige Python-Bibliotheken, die bereits in der Python-Standardbibliothek verfügbar sind:

import json import os

Ja, wir brauchen nur diese beiden Bibliotheken! Wir brauchen, jsonda unsere Datenbank auf JSON basiert und osfür einige pfadbezogene Dinge.

Definieren wir nun die Hauptklasse FoobarDBmit einigen ziemlich grundlegenden Funktionen, die ich unten erläutern werde.

class FoobarDB(object): def __init__(self , location): self.location = os.path.expanduser(location) self.load(self.location) def load(self , location): if os.path.exists(location): self._load() else: self.db = {} return True def _load(self): self.db = json.load(open(self.location , "r")) def dumpdb(self): try: json.dump(self.db , open(self.location, "w+")) return True except: return False

Hier haben wir unsere Hauptklasse mit einer __init__Funktion definiert. Bei der Erstellung einer Foobar-Datenbank müssen wir nur den Speicherort der Datenbank übergeben. In der ersten __init__Funktion nehmen wir den Standortparameter und ersetzen ~oder ~userdurch das Home-Verzeichnis des Benutzers, damit es wie vorgesehen funktioniert. Und schließlich setzen Sie es in eine self.locationVariable, um später auf dieselben Klassenfunktionen zuzugreifen. Am Ende rufen wir die loadFunktion auf, die self.locationals Argument übergeben wird.

. . . . def load(self , location): if os.path.exists(location): self._load() else: self.db = {} return True . . . .

In der nächsten loadFunktion nehmen wir den Speicherort der Datenbank als Parameter. Überprüfen Sie dann, ob die Datenbank vorhanden ist oder nicht. Wenn es existiert, laden wir es mit der _load()Funktion (unten erklärt). Andernfalls erstellen wir ein leeres speicherinternes JSON-Objekt. Und schließlich kehren Sie beim Erfolg zurück.

. . . . def _load(self): self.db = json.load(open(self.location , "r")) . . . .

In der _loadFunktion öffnen wir einfach die Datenbankdatei von dem Speicherort aus self.location. Dann transformieren wir es in ein JSON-Objekt und laden es in eine self.dbVariable.

. . . . def dumpdb(self): try: json.dump(self.db , open(self.location, "w+")) return True except: return False . . . .

Und schließlich die dumpdbFunktion: Der Name sagt, was sie tut. Es nimmt die speicherinterne Datenbank (eigentlich ein JSON-Objekt) aus der self.dbVariablen und speichert sie in der Datenbankdatei! Bei erfolgreicher Speicherung wird True zurückgegeben , andernfalls False.

Machen Sie es ein wenig benutzerfreundlicher ...?

Warte eine Minute! ? Eine Datenbank ist nutzlos, wenn sie keine Daten speichern und abrufen kann, nicht wahr? Lass uns gehen und sie auch hinzufügen ...?

. . . . def set(self , key , value): try: self.db[str(key)] = value self.dumpdb() return True except Exception as e: print("[X] Error Saving Values to Database : " + str(e)) return False def get(self , key): try: return self.db[key] except KeyError: print("No Value Can Be Found for " + str(key)) return False def delete(self , key): if not key in self.db: return False del self.db[key] self.dumpdb() return True . . . .

Die setFunktion besteht darin, der Datenbank Daten hinzuzufügen. Da unsere Datenbank eine einfache, auf Schlüsselwerten basierende Datenbank ist, nehmen wir nur ein keyund valueals Argument.

Zuerst versuchen wir, den Schlüssel und den Wert zur Datenbank hinzuzufügen und dann die Datenbank zu speichern. Wenn alles richtig läuft, wird True zurückgegeben. Andernfalls wird eine Fehlermeldung ausgegeben und False zurückgegeben. (Wir möchten nicht, dass es jedes Mal abstürzt und unsere Daten löscht, wenn ein Fehler auftritt?).

. . . . def get(self, key): try: return self.db[key] except KeyError: return False . . . .

getist eine einfache Funktion, die wir keyals Argument nehmen und versuchen, den mit dem Schlüssel verknüpften Wert aus der Datenbank zurückzugeben. Andernfalls wird False mit einer Nachricht zurückgegeben.

. . . . def delete(self , key): if not key in self.db: return False del self.db[key] self.dumpdb() return True . . . .

deleteFunktion ist es, einen Schlüssel sowie seinen Wert aus der Datenbank zu löschen. Zunächst stellen wir sicher, dass der Schlüssel in der Datenbank vorhanden ist. Wenn nicht, geben wir False zurück. Andernfalls löschen wir den Schlüssel mit dem integrierten Schlüssel, der delden Wert des Schlüssels automatisch löscht. Als nächstes speichern wir die Datenbank und sie gibt false zurück.

Nun denken Sie vielleicht, was ist, wenn ich eine große Datenbank erstellt habe und sie zurücksetzen möchte? Theoretisch können wir verwenden delete- aber es ist nicht praktisch und auch sehr zeitaufwändig! ⏳ So können wir eine Funktion erstellen, um diese Aufgabe zu erledigen ...

. . . . def resetdb(self): self.db={} self.dumpdb() return True . . . .

Hier ist die Funktion zum Zurücksetzen der Datenbank resetdb! Es ist so einfach: Zuerst weisen wir unsere In-Memory-Datenbank mit einem leeren JSON-Objekt neu zu und speichern es einfach! Und das ist es! Unsere Datenbank ist jetzt wieder glatt rasiert.

Endlich… ?

Das ist es Freunde! Wir haben unsere eigene Spielzeugdatenbank erstellt ! ?? Eigentlich ist Fo obarDB nur eine einfache Demo einer Datenbank. Es ist wie ein billiges DIY-Spielzeug: Sie können es nach Belieben verbessern. Sie können je nach Bedarf auch viele andere Funktionen hinzufügen.

Vollständige Quelle ist hier? bauripalash / foobardb

Ich hoffe, dass es Ihnen gefallen hat! Teilen Sie mir Ihre Vorschläge, Ideen oder Fehler mit, die ich in den Kommentaren unten gemacht habe! ?

Folgen / pingen Sie mich auf Socials? Facebook, Twitter, Instagram

Vielen Dank! Bis bald!

Wenn Ihnen meine Arbeit gefällt (meine Artikel, Geschichten, Software, Forschungen und vieles mehr), sollten Sie mir einen Kaffee kaufen ☕?