Jak połączyć aplikację Flask z CouchDB: baza danych NoSQL?

Jak połączyć aplikację Flask z CouchDB: baza danych NoSQL?

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 jest nierelacyjnym systemem 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ć :

jak usunąć znak wodny ze zdjęcia
pip install flask

Połącz kolbę z CouchDB

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

Aby to zrobić:

pip install 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:

from couchdb import Server

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

from couchdb import Server
server = Server()
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 pisanej małymi literami dla baz danych, 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:

from flask import Flask
from couchdb import Server
from flaskext.couchdb import Document

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

app = Flask(__name__, static_url_path='/static')
app.debug=True
server = Server()

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

@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
doc_id, doc_rev = db.save(user) #store your data in th database
return '

Your data should now be in the database

'

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

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

set FLASK_ENV=development

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

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

flask run

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ń do 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 = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

Teraz wykorzystajmy powyższy kod praktycznie:

#Create a document object model called ' Users :'
class User(Document):
doc_type = 'User'
@app.route('/', methods=['GET', 'POST'])
def register():
user = {
'username':'media site',
'email':'justmail@gmail.com',
'password':'encrypteddata'
}
db = server['muocouch'] #select the database
# Use the view function to fetch your data from CouchDB
map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
# Get all the data by running a query set
myQuery = User.query(db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Loop out all the usernames from the database
q2 = [i['email'] for i in myQuery] # Loop out all the email addresses from the database
q3 = q+q2 # Merge both queries into a single list
print(q3)
return '

Your data is now in the database

'

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 w bazie danych w wierszu poleceń.

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

if not (user['username'] in q3 or user['email'] in q3):
#store your data into the database if itdoesn't exist
doc_id, doc_rev = db.save(user)
return '

Registered successfully

'
else:
return '

Username or email exists

'

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: schorzenie.

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ą wtforms 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ł Udział Ćwierkać E-mail SQL kontra 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 Idisou 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ć