MySQL, PostgreSQL, Oracle, Redis și multe altele, doar îl numiți – bazele de date sunt o piesă de tehnologie cu adevărat importantă în progresul civilizației umane. Astăzi putem vedea cât de valoros este date sunt, astfel încât păstrarea acestora în condiții de siguranță și stabilitate este locul unde intră baza de date!
Deci, putem vedea cât de importante sunt și bazele de date. De ceva timp m-am gândit să creez propria mea bază de date de jucării doar pentru a înțelege, a juca și a experimenta cu ea. La fel de Richard Feynman a spus:
„Ceea ce nu pot crea, nu înțeleg.”
Deci, fără să mai vorbim, să trecem la partea distractivă: codarea.
Să începem codificarea …
Pentru această bază de date de jucării, o vom folosi Piton (preferatul meu ❤️). Am numit această bază de date FooBarDB (Nu am putut găsi alt nume?), Dar îl poți numi oricum vrei!
Deci, mai întâi să importăm câteva biblioteci Python necesare care sunt deja disponibile în Python Standard Library:
import json
import os
Da, avem nevoie doar de aceste două biblioteci! Avem nevoie json
deoarece baza noastră de date se va baza pe JSON și os
pentru unele lucruri legate de cale.
Acum să definim clasa principală FoobarDB
cu câteva funcții destul de simple, pe care le voi explica mai jos.
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
Aici ne-am definit clasa principală cu un __init__
funcţie. Ori de câte ori creăm o bază de date Foobar, trebuie doar să trecem locația bazei de date. In primul __init__
funcție luăm parametrul de locație și înlocuim ~
sau ~user
cu directorul de acasă al utilizatorului pentru a-l face să funcționeze în mod intenționat. Și, în cele din urmă, pune-l în self.location
variabilă pentru a-l accesa ulterior pe aceleași funcții de clasă. În cele din urmă, apelăm la load
funcția de trecere self.location
ca argument.
. . . .
def load(self , location):
if os.path.exists(location):
self._load()
else:
self.db = {}
return True
. . . .
În urmatoarele load
funcție luăm locația bazei de date ca parametru. Apoi verificați dacă baza de date există sau nu. Dacă există, îl încărcăm cu _load()
funcție (explicată mai jos). În caz contrar, creăm un obiect JSON gol în memorie. Și, în cele din urmă, reveniți la succes.
. . . .
def _load(self):
self.db = json.load(open(self.location , "r"))
. . . .
În _load
funcție, pur și simplu deschidem fișierul bazei de date din locația stocată în self.location
. Apoi îl transformăm într-un obiect JSON și îl încărcăm în self.db
variabil.
. . . .
def dumpdb(self):
try:
json.dump(self.db , open(self.location, "w+"))
return True
except:
return False
. . . .
Și în cele din urmă, dumpdb
funcție: numele său spune ce face. Acesta ia baza de date în memorie (de fapt un obiect JSON) din self.db
variabilă și o salvează în fișierul bazei de date! Se întoarce Adevărat dacă este salvat cu succes, altfel revine Fals.
Faceți-o puțin mai utilizabilă …?
Așteptați un minut! ? O bază de date este inutilă dacă nu poate stoca și prelua date, nu-i așa? Să mergem și să le adăugăm și ele …?
. . . .
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
. . . .
set
funcția este de a adăuga date la baza de date. Deoarece baza noastră de date este o bază de date simplă bazată pe valoare-cheie, vom lua doar un key
și value
ca argument.
Mai întâi, vom încerca să adăugăm cheia și valoarea la baza de date și apoi să salvăm baza de date. Dacă totul merge bine, acesta va reveni True. În caz contrar, va imprima un mesaj de eroare și va returna False. (Nu vrem să se blocheze și să ne șteargă datele de fiecare dată când apare o eroare?).
. . . .
def get(self, key):
try:
return self.db[key]
except KeyError:
return False
. . . .
get
este o funcție simplă, luăm key
ca argument și încercați să returnați valoarea legată de cheie din baza de date. În caz contrar, False este returnat cu un mesaj.
. . . .
def delete(self , key):
if not key in self.db:
return False
del self.db[key]
self.dumpdb()
return True
. . . .
delete
funcția este de a șterge o tastă, precum și valoarea acesteia din baza de date. În primul rând, ne asigurăm că cheia este prezentă în baza de date. Dacă nu, ne întoarcem False. În caz contrar, ștergem cheia cu dispozitivul încorporat del
care șterge automat valoarea cheii. Apoi, salvăm baza de date și returnează fals.
Acum s-ar putea să vă gândiți, dacă am creat o bază de date mare și doresc să o resetez? În teorie, putem folosi delete
– dar nu este practic și, de asemenea, consumă mult timp! ⏳ Deci putem crea o funcție pentru a realiza această sarcină …
. . . .
def resetdb(self):
self.db={}
self.dumpdb()
return True
. . . .
Iată funcția de resetare a bazei de date, resetdb
! Este atât de simplu: mai întâi, ceea ce facem este să ne alocăm din nou baza de date în memorie cu un obiect JSON gol și doar îl salvează! Si asta e! Baza noastră de date este acum din nou rasă.
In cele din urma… ?
Asta e prietenii! Ne-am creat propriile noastre Baza de date jucării ! ?? De fapt, FoobarDB iEste doar o simplă demonstrație a unei baze de date. Este ca o jucărie DIY ieftină: o poți îmbunătăți cum vrei. De asemenea, puteți adăuga multe alte funcții în funcție de nevoile dvs.
Sursa completă este aici? bauripalash / foobardb
Sper ca ti-a placut! Spuneți-mi sugestiile, ideile sau greșelile pe care le-am făcut în comentariile de mai jos! ?
Urmăriți-mi / trimiteți-mi ping pe rețelele sociale Facebook, Twitter, Eunstagram
Mulțumesc! Pe curând!
Dacă îți place munca mea (articolele mele, poveștile, software-urile, cercetările și multe altele) ia în considerare Cumpărându-mi o cafea ☕ ?
#Cum #scrie #bază #date #jucării #simplă #în #Python #în #câteva #minute
Cum se scrie o bază de date de jucării simplă în Python în câteva minute