Hvordan bruke TinyDB -databasen i Python

Hvordan bruke TinyDB -databasen i Python

Denne artikkelen vil dekke en guide for installasjon og bruke “TinyDB”Modul som kan brukes til å opprette og administrere databaser i JSON -filformat. Tilgjengelig som tredjepartsmodul for Python -programmer, TinyDB er skrevet i ren python, og det kommer med mange nyttige funksjoner som kan brukes til å spørre og endre databasefiler. Det støtter ikke spørsmål fra SQL -stil, men bruker sin egen Pythonic API for å søke i databasefiler. TinyDB krever ikke at du oppretter en databaseserver, og alt kan nås direkte gjennom filer som er lagret på en lagringsenhet uten behov for en serverforbindelse. Bortsett fra dokumenter eller ordbokstype Python -objekter, støtter den også tabeller slik at du kan lagre data i flere tabeller og holde hver tabell uavhengig av andre.

Installere TinyDB i Linux

TinyDB er tilgjengelig i offisielle Ubuntu -depoter, slik at du kan installere den fra Package Manager ved hjelp av følgende kommando:

$ sudo apt install python3-tinydb

Du kan installere TinyDB I andre Linux -distribusjoner fra pakkebehandleren. En alternativ metode for å installere TinyDB I Ubuntu og andre Linux -distribusjoner er å bruke “Pip”Pakkesjef.

Du kan installere Pip Package Manager i Ubuntu ved å bruke følgende kommando:

$ sudo apt install python3-pip

Du kan søke etter Pip Package Manager i offisielle depoter av Linux -distribusjonen din og installere den derfra. Du kan også installere Pip Package Manager ved å følge offisielle installasjonsinstruksjoner som er tilgjengelige her. Når Pip Package Manager er installert på Linux -systemet ditt, bruker du følgende kommando til å installere TinyDB Modul:

$ pip3 installer TinyDB

Grunnleggende syntaks og bruk

Å lage en ny JSON databasefil støttet av TinyDB, Bruk følgende Python -utsagn:

Fra TinyDB import TinyDB
DB = TinyDB ('DB.json ')
Print (DB)

Den første uttalelsen importerer den viktigste TinyDB -modulen slik at metodene kan brukes i et Python -program. Deretter opprettes en ny forekomst av TinyDB -klasse ved å levere en ".JSON ”-filen som hovedargument. Denne uttalelsen vil opprette en ny database eller laste inn en eksisterende JSON -database opprettet av TinyDB.

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Siden det er opprettet en fersk database, er det foreløpig ingen dokumenter eller datatabeller i databasen. For å sette inn et nytt dokument (Python Dictionary) i tabellen, bruk følgende kode:

Fra TinyDB import TinyDB
DB = TinyDB ('DB.json ')
db.Sett inn ('Navn': 'John', 'Rank': 2)
db.Sett inn ('Navn': 'Peter', 'Rank': 1)
Print (DB)

"Sett inn" -metoden kan brukes til å sette inn dokumenter eller ordbøker i databasen. Du må levere en ordbok som et argument med det nødvendige nøkkelverdiparet. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Som du kan se i utdataene, inneholder databasen nå to dokumenter, tildelt tabellen "_default". Hvis du åpner “DB.JSON ”-fil i en tekstredigerer, den skal se slik ut:

For å tilordne et dokument til en bestemt tabell må du først opprette en ny tabell. Du kan opprette en ny tabell ved å ringe "tabellen" -metoden. Her er en kodeeksempel:

Fra TinyDB import TinyDB
DB = TinyDB ('DB.json ')
db.Sett inn ('Navn': 'John', 'Rank': 2)
db.Sett inn ('Navn': 'Peter', 'Rank': 1)
Tabell = dB.bord ('frukt')
bord.Sett inn ('Apples': 50)
Print (DB)

Som du kan se i kodeprøven, har "tabell" -metoden blitt kalt for å lage en ny tabell som vil bli lagret i databasen. Du trenger bare å gi et navn for det som et argument. Når en ny tabell er opprettet, er resten av prosedyren den samme. I stedet for å ringe "Sett inn" -metoden i standarddatabasen, ringer du nå innsatsmetoden på den nyopprettede tabellen.

Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

Databasen inneholder nå to tabeller. Hvis du åpner databasen i en tekstredigerer, bør du se ny tabell lagt til databasen:

Merk at alle metodene som kan kalles på standarddatabasen, kan også brukes med tabeller.

Spørring av dokumenter i databasen

For å søke på dokumenter i databasen, må du importere "Query" -klassen fra TinyDB -modulen og bruke "Search" -metoden. Her er en kodeeksempel:

Fra TinyDB import TinyDB, spørring
DB = TinyDB ('DB.json ')
db.Sett inn ('Navn': 'John', 'Rank': 2)
db.Sett inn ('Navn': 'Peter', 'Rank': 1)
q = spørring ()
Resultat = db.Søk (q.Navn == 'John')
trykk (resultat)

En ny forekomst av "Query" -klassen opprettes, og deretter blir en søkemetode kalt på databasen. Ved hjelp av DOT -notasjon kan du velge en dokumenttast eller felt og legge til den nødvendige søkeord på høyre side. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

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

Hvis det ikke er noen kamper, vil en tom liste bli returnert. Du kan også ringe søkemetoden på et manuelt opprettet tabell.

Fra TinyDB import TinyDB, spørring
DB = TinyDB ('DB.json ')
db.Sett inn ('Navn': 'John', 'Rank': 2)
db.Sett inn ('Navn': 'Peter', 'Rank': 1)
Tabell = dB.bord ('frukt')
bord.Sett inn ('Apples': 50)
q = spørring ()
Resultat = tabell.Søk (q.epler < 100)
trykk (resultat)

Kodeprøven viser bruk av søkemetode på en spesifikk tabell. Legg merke til i koden at en annen sammenligningsoperatør ('<' sign) has been used to query the database. After running the above code sample, you should get the following output:

['epler': 50]

Oppdatering og fjerning av dokumenter

For å oppdatere et eksisterende dokument i databasen, må du bruke "oppdatering" -metoden. Her er en kodeeksempel:

Fra TinyDB import TinyDB, spørring
DB = TinyDB ('DB.json ')
db.Sett inn ('Navn': 'John', 'Rank': 2)
db.Sett inn ('Navn': 'Peter', 'Rank': 1)
q = spørring ()
db.oppdatering ('rang': 3, q.Navn == 'John')
trykk (DB.alle())

Ved å bruke spørringsklassen forklart ovenfor, kan du oppdatere verdien av et eksisterende felt i databasen. Passer verdien som skal endres som det første argumentet til oppdateringsmetoden og deretter gi spørringen som det andre argumentet. "All" -metoden kan brukes til å hente alle tilgjengelige dokumenter i databasen. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata der rangering av "John" er blitt oppdatert til 3 fra 2:

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

For å fjerne et dokument, må du bruke "fjerne" -metoden og spørringssyntaxen forklart ovenfor. Her er en kodeeksempel:

Fra TinyDB import TinyDB, spørring
DB = TinyDB ('DB.json ')
db.Sett inn ('Navn': 'John', 'Rank': 2)
db.Sett inn ('Navn': 'Peter', 'Rank': 1)
q = spørring ()
db.Fjern (q.Navn == 'John')
trykk (DB.alle())

Du må sende en spørring til Fjern -metoden slik at tilknyttede dokumenter kan matches og fjernes fra databasen. Etter å ha kjørt ovennevnte kodeprøve, bør du få følgende utdata:

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

Konklusjon

TinyDB gir mange bekvemmelighets- og hjelperfunksjoner for å opprette og administrere JSON -baserte databaser. Mens du kan håndtere JSON -filer ved hjelp av “JSON” -modulen i Python, er TinyDB mye mer enn det og inkluderer et omfattende spørringssystem som kan brukes til å hente resultater raskt med enkle en foringserklæringer.