Jak używać bazy danych TinyDB w Python

Jak używać bazy danych TinyDB w Python

W tym artykule obejmie przewodnik po instalacji i użyciu „Tinydb”Moduł, którego można użyć do tworzenia i zarządzania bazami danych w formacie plików JSON. Dostępny jako moduł zewnętrzny dla programów Python, Tinydb jest napisane w czystym Pythonie i jest wyposażony w wiele przydatnych funkcji, których można użyć do zapytania i modyfikowania plików bazy danych. Nie obsługuje zapytań w stylu SQL, ale używa własnego interfejsu API Pythonic do wyszukiwania plików bazy danych. Tinydb nie wymaga utworzenia serwera bazy danych i wszystko można uzyskać bezpośrednio za pośrednictwem plików przechowywanych na urządzeniu pamięci bez potrzeby połączenia serwera. Oprócz dokumentów lub obiektów Python typu słownika, obsługuje również tabele, dzięki czemu można przechowywać dane w wielu tabelach i utrzymywać niezależność od innych tabeli.

Instalowanie TinyDB w Linux

TinyDB jest dostępny w oficjalnych repozytoriach Ubuntu, dzięki czemu można go zainstalować z menedżera pakietu za pomocą następującego polecenia:

$ sudo apt instal Python3 Tinydb

Możesz zainstalować Tinydb w innych dystrybucjach Linux z menedżera pakietów. Alternatywna metoda instalacji Tinydb W Ubuntu i innych rozkładach Linux ma użyć „pypeć”Menedżer pakietów.

Możesz zainstalować menedżer pakietów PIP w Ubuntu za pomocą następującego polecenia:

$ sudo apt instal Python3-Pip

Możesz wyszukać menedżera pakietów PIP w oficjalnych repozytoriach dystrybucji Linux i instalować go stamtąd. Możesz także zainstalować menedżer pakietów PIP, postępując zgodnie z oficjalnymi instrukcjami instalacji dostępnymi tutaj. Po zainstalowaniu menedżera pakietów PIP w systemie Linux użyj następującego polecenia, aby zainstalować Tinydb moduł:

$ PIP3 instaluj tinydb

Podstawowa składnia i użycie

Aby stworzyć nowy JSON plik bazy danych obsługiwany przez Tinydb, Użyj następujących stwierdzeń Pythona:

z Tinydb Import tinydb
db = tinydb ('db.JSON ')
Drukuj (db)

Pierwsza instrukcja importuje główny moduł TinyDB, aby jego metody można zastosować w programie Python. Następnie powstaje nowa instancja klasy TinyDB, dostarczając „”.plik JSON ”jako główny argument. Ta instrukcja utworzy nową bazę danych lub załaduje istniejącą bazę danych JSON utworzoną przez TinyDB.

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Ponieważ utworzono nową bazę danych, w bazie danych nie ma obecnie żadnych dokumentów ani tabel danych. Aby wstawić nowy dokument (Słownik Python) w tabeli, użyj następującego kodu:

z Tinydb Import tinydb
db = tinydb ('db.JSON ')
db.wstaw („name”: „John”, „rank”: 2)
db.wstaw („name”: „Peter”, „rank”: 1)
Drukuj (db)

Metodę „Wstaw” można zastosować do wstawienia dokumentów lub słowników w bazie danych. Musisz dostarczyć słownik jako argument z wymaganą parą wartości kluczowej. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Jak widać na wyjściu, baza danych zawiera teraz dwa dokumenty przypisane do tabeli „_default”. Jeśli otworzysz „DB.plik JSON ”W edytorze tekstu powinien wyglądać tak:

Aby przypisać dokument do określonej tabeli, musisz najpierw utworzyć nową tabelę. Możesz utworzyć nową tabelę, wywołując metodę „tabeli”. Oto próbka kodu:

z Tinydb Import tinydb
db = tinydb ('db.JSON ')
db.wstaw („name”: „John”, „rank”: 2)
db.wstaw („name”: „Peter”, „rank”: 1)
Tabela = db.Tabela („owoce”)
tabela.wstaw („jabłki”: 50)
Drukuj (db)

Jak widać w próbce kodu, wywołano metodę „tabeli” w celu utworzenia nowej tabeli, która będzie przechowywana w bazie danych. Wystarczy podać nazwę jako argument. Po utworzeniu nowej tabeli reszta procedury jest taka sama. Zamiast wywoływać metodę „wstaw” w domyślnej bazie danych, teraz wywołujesz metodę wstawienia w świeżo utworzonej tabeli.

Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

Baza danych zawiera teraz dwie tabele. Jeśli otworzysz bazę danych w edytorze tekstu, powinieneś zobaczyć nową tabelę dodaną do bazy danych:

Zauważ, że wszystkie metody, które można wywołać w domyślnej bazie danych, można również użyć z tabelami.

Zapytanie dokumentów w bazie danych

Aby wyszukać dokumenty w bazie danych, musisz zaimportować klasę „zapytanie” z modułu TinyDB i użyć metody „Wyszukaj”. Oto próbka kodu:

z Tinydb Import tinydb, zapytanie
db = tinydb ('db.JSON ')
db.wstaw („name”: „John”, „rank”: 2)
db.wstaw („name”: „Peter”, „rank”: 1)
Q = zapytanie ()
wynik = db.Wyszukaj (q.Nazwa == „John”)
Drukuj (wynik)

Utworzono nową instancję klasy „zapytanie”, a następnie w bazie danych wywoływana jest metoda wyszukiwania. Za pomocą zapisu kropki możesz wybrać klawisz dokumentu lub pola i dodać wymagany termin wyszukiwania po prawej stronie. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

[„Nazwa”: „John”, „rank”: 2]

Jeśli nie ma zapałek, zostanie zwrócona pusta lista. Możesz wywołać metodę wyszukiwania również w tabeli ręcznie utworzonej.

z Tinydb Import tinydb, zapytanie
db = tinydb ('db.JSON ')
db.wstaw („name”: „John”, „rank”: 2)
db.wstaw („name”: „Peter”, „rank”: 1)
Tabela = db.Tabela („owoce”)
tabela.wstaw („jabłki”: 50)
Q = zapytanie ()
wynik = tabela.Wyszukaj (q.jabłka < 100)
Drukuj (wynik)

Próbka kodu pokazuje użycie metody wyszukiwania w określonej tabeli. Zauważ w kodzie, że inny operator porównawczy ('<' sign) has been used to query the database. After running the above code sample, you should get the following output:

[„jabłka”: 50]

Aktualizacja i usuwanie dokumentów

Aby zaktualizować istniejący dokument w bazie danych, musisz użyć metody „aktualizacji”. Oto próbka kodu:

z Tinydb Import tinydb, zapytanie
db = tinydb ('db.JSON ')
db.wstaw („name”: „John”, „rank”: 2)
db.wstaw („name”: „Peter”, „rank”: 1)
Q = zapytanie ()
db.Aktualizacja („rank”: 3, q.Nazwa == „John”)
Drukuj (db.Wszystko())

Korzystając z klasy zapytania wyjaśnionej powyżej, możesz zaktualizować wartość istniejącego pola w bazie danych. Przekaż wartość, która ma zostać zmodyfikowana jako pierwszy argument do metody aktualizacji, a następnie przekazuj zapytanie jako drugi argument. Metodę „wszystkie” można użyć do pobierania wszystkich dokumentów dostępnych w bazie danych. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe, w którym ranga „Johna” została zaktualizowana do 3 z 2:

[„Nazwa”: „John”, „rank”: 3, „name”: „Peter”, „rank”: 1]

Aby usunąć dokument, będziesz musiał użyć metody „Usuń” i wyjaśnioną powyżej składnię zapytania. Oto próbka kodu:

z Tinydb Import tinydb, zapytanie
db = tinydb ('db.JSON ')
db.wstaw („name”: „John”, „rank”: 2)
db.wstaw („name”: „Peter”, „rank”: 1)
Q = zapytanie ()
db.Usuń (q.Nazwa == „John”)
Drukuj (db.Wszystko())

Musisz przekazać zapytanie do metody usuwania, aby można było dopasować i usunąć powiązane dokumenty z bazy danych. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:

[„name”: „Peter”, „rank”: 1]

Wniosek

TinyDB zapewnia liczne funkcje wygody i pomocniczych do tworzenia baz danych opartych na JSON i zarządzaniu JSON. Podczas gdy możesz obsługiwać pliki JSON za pomocą modułu „JSON” w Python, TinyDB to znacznie więcej i zawiera kompleksowy system zapytań, którego można użyć do szybkiego pobierania wyników za pomocą prostych instrukcji One Liner.