Połączenie Flaska z bazami danych SQL, takimi jak PostgreSQL i SQLite, jest bardzo proste. Ale framework doskonale synchronizuje się również z bazami danych NoSQL, takimi jak CouchDB. Dodatkową korzyścią jest to, że możesz łatwo przeszukiwać dane, gdy używasz CouchDB z Flask.

Gotowy na wprowadzenie zmian za pomocą NoSQL, takiego jak CouchDB, z aplikacją Flask? Oto jak skonfigurować CouchDB na lokalnym komputerze i połączyć go z Flask.

Co to jest CouchDB?

CouchDB to baza danych NoSQL obecnie należąca do Apache Software Foundation. Oprogramowanie napisane z Erlangiem zostało po raz pierwszy wydane w 2005 roku.

W przeciwieństwie do zwykłych baz danych połączonych z tabelami, do których najprawdopodobniej jesteś przyzwyczajony, CouchDB to nierelacyjny system zarządzania bazami danych, który przechowuje dane w postaci nieprzetworzonego formatu JSON.

CouchDB nie blokuje, więc nie blokuje bazy danych podczas wprowadzania danych. Jedną z mocnych stron CouchDB jest to, że używa polityki kontroli współbieżności wielu wersji do odczytu i zapisu danych. Pozwala więc na jednoczesne wprowadzanie danych przez wielu użytkowników bez ingerencji w istniejącą strukturę danych w bazie danych.

Dzięki temu CouchDB jest szybki podczas zapytań i łatwy w obsłudze przy użyciu metod asynchronicznych. To powiedziawszy, nie czyni go to lepszym niż jego odpowiednik SQL. Każda technologia ma swoje plusy i minusy.

Konfiguracja CouchDB

Aby rozpocząć korzystanie z CouchDB, pobierz i zainstaluj kompatybilną wersję z Oficjalna strona CouchDB.

A jeśli ta najnowsza wersja nie działa dla Ciebie, przejdź do Archiwum CouchDB i pobierz wersję 1.6.1, która jest wcześniejszą wersją CouchDB.

Po zainstalowaniu CouchDB uruchom go na swoim komputerze tak, jak każdą inną aplikację komputerową.

Otwórz przeglądarkę. Następnie uruchom serwer CouchDB, wklejając następujące informacje do paska adresu:

http://localhost: 5984/_utils/index.html

Skonfiguruj Pythona i Flask

Ten samouczek zakłada jednak, że masz już zainstalowany Python na swoim komputerze. W przeciwnym razie przejdź do python.org i zainstaluj najnowszą wersję Pythona na swoim komputerze.

Po skonfigurowaniu CouchDB utwórz folder główny projektu. Następnie otwórz wiersz poleceń do tego katalogu i utwórz Wirtualne środowisko Pythona.

Zainstaluj najnowszą wersję Flask w przestrzeni wirtualnej za pomocą pypeć:

kolba instalacyjna pip

Połącz kolbę z CouchDB

Aby rozpocząć korzystanie z CouchDB z aplikacją Flask, zainstaluj Kolba-CouchDB, pakiet uruchomieniowy do łączenia bazy danych z Flask.

Aby to zrobić:

pip zainstaluj Flask-CouchDB

Po zainstalowaniu Kolba-CouchDB pomyślnie, utwórz aplikacja.py plik w tym folderze głównym. Podobnie utwórz a baza.py file — obsługuje tworzenie bazy danych.

otwarty baza.py i zaimportuj następujące pakiety:

z serwera importu couchdb

Następnie utwórz bazę danych w tym samym pliku, używając następującego bloku kodu:

z serwera importu couchdb
serwer = serwer()
db = server.create('muocouch')

Wykonać baza.py za pośrednictwem interfejsu wiersza polecenia. Następnie otwórz lub odśwież lokalny serwer CouchDB za pomocą przeglądarki, tak jak to robiłeś wcześniej. Powinieneś teraz zobaczyć bazę danych (muocouch w tym przypadku) wymienione w CouchDB.

Związane z:Jak uruchomić skrypt Pythona

Notatka: Upewnij się, że używasz konwencji nazewnictwa baz danych pisanej małymi literami, ponieważ CouchDB może nie akceptować wielkich lub mieszanych liter.

Przechowuj swoje pierwsze dane z CouchDB za pomocą Flask

Ostatecznie celem każdej bazy danych jest przechowywanie danych. Gdy masz już bazę danych w CouchDB, możesz od razu zacząć przechowywać w niej dane z aplikacji Flask.

Aby rozpocząć, otwórz aplikacja.py i zaimportuj następujące pakiety:

z kolby importu Flask
z serwera importu couchdb
z pliku importu flaskext.couchdb

Następnie utwórz aplikację Flask i instancję serwera CouchDB:

app = Flask (__name__, static_url_path='/static')
app.debug=Prawda
serwer = serwer()

Teraz zapiszmy kilka danych wejściowych użytkownika w CouchDB:

@app.route('/', method=['GET', 'POST'])
def rejestr():
użytkownik = {
"nazwaużytkownika":"strona multimedialna",
"email":"[email protected]",
"hasło":"zaszyfrowane dane"
}
db = server['muocouch'] #wybierz bazę danych
doc_id, doc_rev = db.save (użytkownik) #przechowuj swoje dane w bazie danych
powrót "

Twoje dane powinny być teraz w bazie danych

"

Jeśli chcesz, możesz ustawić serwer Flask w trybie deweloperskim przed jego uruchomieniem.

Aby to zrobić, uruchom następujące polecenie za pomocą swojego CLI:

ustaw FLASK_ENV = rozwój

Pamiętaj, że ustawienie trybu serwera jest opcjonalne. To sprawia, że ​​debugowanie kodu jest bezproblemowe.

Ale niezależnie od ustawienia trybu serwera, oto jak uruchomić serwer Flask za pomocą CMD:

kolba uruchomiona

Flask jednak domyślnie ustawia port na Lokalny Gospodarz: 5000. Powinieneś teraz zobaczyć wiadomość w H2 tag po załadowaniu tego adresu przez przeglądarkę.

Weryfikuj dane i sprawdzaj duplikaty za pomocą zapytań CouchDB

Aby dodatkowo ujednolicić to, możesz użyć zapytań do sprawdzania poprawności danych wejściowych i zapobiegania duplikatom w bazie danych. Wykonywanie zapytań w CouchDB różni się nieco od tego, jak robi się to w przypadku baz danych SQL.

CouchDB używa tego, co nazywa „widokami JavaScript”, aby wysyłać zapytania do bazy danych. Na szczęście jest to stosunkowo proste.

Zanim przejdziesz dalej, oto jak wygląda podstawowy widok zapytań CouchDB:

map_func = funkcja (doc) 
{ emituj (doc.doc_rev, doc); }
myQuery = [docType].query (db, map_func, Reduce_fun=Brak)

Teraz wykorzystajmy powyższy kod praktycznie:

#Utwórz obiektowy model dokumentu o nazwie „Użytkownicy:"
klasa Użytkownik (Dokument):
doc_type = 'Użytkownik'
@app.route('/', method=['GET', 'POST'])
def rejestr():
użytkownik = {
"nazwaużytkownika":"strona multimedialna",
"email":"[email protected]",
"hasło":"zaszyfrowane dane"
}
db = server['muocouch'] #wybierz bazę danych
# Użyj funkcji przeglądania, aby pobrać dane z CouchDB
map_func = funkcja (doc)
{ emituj (doc.doc_rev, doc); }
# Pobierz wszystkie dane, uruchamiając zestaw zapytań
myQuery = User.query (db, map_func, Reduce_fun=Brak, reverse=True)
q = [i['username'] for i in myQuery] # Zapętl wszystkie nazwy użytkowników z bazy danych
q2 = [i['email'] for i in myQuery] # Połącz wszystkie adresy e-mail z bazy danych
q3 = q+q2 # Połącz oba zapytania w jedną listę
druk (q3)
powrót "

Twoje dane znajdują się teraz w bazie danych

"

Powyższy kod używa Użytkownik do zapytania o dane pobrane przez funkcję widoku. Zwróć szczególną uwagę na parametry w zestawie zapytań (moje zapytanie).

Druk q3, tak jak to zrobiłeś powyżej, powinno teraz wyświetlać wszystkie nazwy użytkowników i adresy e-mail z bazy danych w wierszu poleceń.

Oto jak możesz użyć tego zapytania do weryfikacji danych wejściowych użytkowników:

jeśli nie (user['username'] w q3 lub user['email'] w q3):
#przechowuj swoje dane w bazie danych, jeśli nie istnieje
doc_id, doc_rev = db.save (użytkownik)
powrót "

Zarejestrowany pomyślnie

"
w przeciwnym razie:
powrót "

Nazwa użytkownika lub e-mail istnieje

"

Odświeżenie przeglądarki powoduje powrót w przeciwnym razie oświadczenie za każdym razem, gdy próbujesz wprowadzić nazwę użytkownika lub adres e-mail, który jest już w bazie danych. A jeśli wprowadzasz nowy, z powodzeniem przechowuje twoje dane, wykonując Jeśli stan.

Związane z:Jak używać instrukcji if w Pythonie?

Otóż ​​to! Właśnie stworzyłeś swoją pierwszą bazę danych NoSQL przy użyciu Flask-CouchDB.

Chociaż tworzenie i odpytywanie baz danych w CouchDB opiera się na przykładach, które tutaj podkreśliliśmy, możesz dokładniej zbadać funkcje Flask. Na przykład możesz rozkręcić pola wprowadzania za pomocą wtformy i oznaczaj duplikaty za pomocą wiadomości Flask Lampa błyskowa.

Możesz nawet przekazać zapytanie do jQuery JavaScript, aby zweryfikować dane wejściowe i asynchronicznie sprawdzić duplikaty.

Czy CouchDB jest lepsze niż bazy danych SQL?

Korzystanie z CouchDB lub dowolnej innej bazy danych NoSQL z Flask lub jakąkolwiek inną technologią programowania zależy od twoich preferencji. Ale przydaje się w przypadku bezstrukturalnych danych i surowych nośników.

To powiedziawszy, zanim zdecydujesz, możesz przyjrzeć się różnicom między bazami danych NoSQL i SQL, aby pomóc Ci zdecydować, która z nich jest odpowiednia dla Twojego projektu.

UdziałĆwierkaćE-mail
SQL a NoSQL: Jaka jest najlepsza baza danych dla twojego następnego projektu?

Wybór typu bazy danych może być trudny. Czy powinieneś wybrać SQL czy NoSQL?

Czytaj dalej

Powiązane tematy
  • Programowanie
  • Baza danych
  • Programowanie
  • Poradniki kodowania
O autorze
Idowu Omisola (94 opublikowane artykuły)

Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.

Więcej od Idowu Omisola

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować