So verbinden Sie Ihre Flask-App mit CouchDB: Eine NoSQL-Datenbank

So verbinden Sie Ihre Flask-App mit CouchDB: Eine NoSQL-Datenbank

Die Verbindung von Flask mit SQL-Datenbanken wie PostgreSQL und SQLite ist ein Kinderspiel. Aber das Framework synchronisiert sich auch perfekt mit NoSQL-Datenbanken wie CouchDB. Und als zusätzlichen Vorteil können Sie Ihre Daten einfach abfragen, wenn Sie CouchDB mit Flask verwenden.





Sind Sie bereit, eine Änderung vorzunehmen, indem Sie ein NoSQL wie CouchDB mit Ihrer Flask-App verwenden? So richten Sie CouchDB auf Ihrem lokalen Computer ein und verbinden ihn mit Flask.





Was ist CouchDB?

CouchDB ist eine NoSQL-Datenbank, die derzeit im Besitz der Apache Software Foundation ist. Geschrieben mit Erlang, wurde die Software erstmals 2005 veröffentlicht.





Im Gegensatz zu den regulären tabellenverknüpften Datenbanken, an die Sie wahrscheinlich gewöhnt sind, ist CouchDB ein nicht relationales Datenbankverwaltungssystem, das Daten als Roh-JSON speichert.

CouchDB ist non-blocking, also sperrt es die Datenbank während der Dateneingabe nicht. Eine der Stärken von CouchDB besteht darin, dass es eine Richtlinie zur Kontrolle der Parallelität mehrerer Versionen zum Lesen und Schreiben von Daten verwendet. So ermöglicht es gleichzeitige Eingaben von mehreren Benutzern ohne Eingriff in die bestehende Struktur der Daten in der Datenbank.



So ist CouchDB bei Abfragen schnell und bei der Verwendung asynchroner Methoden einfach zu handhaben. Das macht es jedoch nicht besser als sein SQL-Gegenstück. Jede Technologie hat ihre Vor- und Nachteile.

CouchDB einrichten

Um CouchDB zu verwenden, laden Sie eine kompatible Version herunter und installieren Sie sie von Offizielle Website von CouchDB .





Und wenn diese neueste Version für Sie nicht funktioniert, fahren Sie mit dem fort CouchDB-Archiv und laden Sie Version 1.6.1 herunter, eine frühere Version von CouchDB.

Sobald Sie CouchDB installiert haben, führen Sie es wie jede andere Desktop-App auf Ihrem PC aus.





Öffnen Sie Ihren Browser. Starten Sie dann den Server von CouchDB, indem Sie Folgendes in Ihre Adressleiste einfügen:

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

Python und Flask einrichten

In diesem Tutorial wird jedoch davon ausgegangen, dass Python bereits auf Ihrem PC installiert ist. Ansonsten gehe zu python.org und installieren Sie die neueste Version von Python auf Ihrem PC.

Nachdem Sie CouchDB eingerichtet haben, erstellen Sie einen Projektstammordner. Öffnen Sie dann Ihre Befehlszeile in diesem Verzeichnis und erstellen Sie ein Virtuelle Python-Umgebung .

Installieren Sie die neueste Version von Flask im virtuellen Raum mit Pip :

beste Website, um c++ zu lernen
pip install flask

Flask mit CouchDB verbinden

Um CouchDB mit deiner Flask-App zu verwenden, installiere Flask-CouchDB , das Laufzeitpaket zum Verbinden der Datenbank mit Flask.

Um dies zu tun:

pip install Flask-CouchDB

Nach der Installation Flask-CouchDB erfolgreich, erstellen Sie eine app.py Datei in diesem Stammordner. Erstellen Sie auf ähnliche Weise a datenbank.py file – dies verarbeitet Ihre Datenbankerstellung.

Offen datenbank.py und importieren Sie die folgenden Pakete:

from couchdb import Server

Erstellen Sie als Nächstes Ihre Datenbank in derselben Datei mit dem folgenden Codeblock:

from couchdb import Server
server = Server()
db = server.create('muocouch')

Ausführen datenbank.py über die CLI. Dann öffne oder aktualisiere den lokalen Server von CouchDB über deinen Browser wie zuvor. Sie sollten nun die Datenbank sehen ( muocouch in diesem Fall) in CouchDB aufgelistet.

Verwandt: So führen Sie ein Python-Skript aus

Notiz: Stellen Sie sicher, dass Sie eine Namenskonvention in Kleinbuchstaben für Datenbanken verwenden, da CouchDB möglicherweise keine Groß- oder Mischbuchstaben akzeptiert.

Speichern Sie Ihre ersten CouchDB-Daten mit Flask

Letztendlich ist der Zweck jeder Datenbank die Datenspeicherung. Sobald Sie eine Datenbank in CouchDB haben, können Sie sofort mit dem Speichern von Daten aus Ihrer Flask-App beginnen.

Um zu beginnen, öffnen Sie app.py und importieren Sie die folgenden Pakete:

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

Erstellen Sie als Nächstes eine Flask-App und eine CouchDB-Serverinstanz:

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

Speichern wir nun einige Benutzereingaben in 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

'

Wenn Sie möchten, können Sie Ihren Flask-Server in den Entwicklungsmodus versetzen, bevor Sie ihn ausführen.

Führen Sie dazu den folgenden Befehl über Ihre CLI aus:

set FLASK_ENV=development

Beachten Sie, dass die Einstellung des Servermodus optional ist. Es macht nur das Debuggen Ihres Codes problemlos.

Unabhängig von der Einstellung des Servermodus können Sie den Flask-Server jedoch wie folgt über das CMD starten:

flask run

Flask setzt Ihren Port jedoch standardmäßig auf localhost: 5000 . Sie sollten jetzt die Nachricht im sehen H2 tag, sobald Sie diese Adresse über Ihren Browser laden.

Daten validieren und Duplikate mit CouchDB-Abfragen prüfen

Um dies weiter zu standardisieren, können Sie Abfragen verwenden, um Eingaben zu validieren und Duplikate in Ihrer Datenbank zu vermeiden. Das Abfragen von CouchDB unterscheidet sich ein wenig von der Vorgehensweise bei SQL-Datenbanken.

CouchDB verwendet sogenannte 'JavaScript-Ansichten', um Daten aus der Datenbank abzufragen. Dies ist zum Glück relativ einfach.

Bevor Sie fortfahren, sehen Sie wie folgt eine grundlegende CouchDB-Abfrageansicht aus:

map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

Jetzt verwenden wir den obigen Code praktisch:

#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

'

Der obige Code verwendet die Benutzer -Klasse, um die von der Ansichtsfunktion abgerufenen Daten abzufragen. Achten Sie genau auf die Parameter innerhalb des Abfragesatzes ( myQuery ).

Drucken q3 , wie Sie es oben getan haben, sollten jetzt alle Benutzernamen und E-Mail-Adressen in der Datenbank innerhalb der Befehlszeile ausgeben.

So können Sie diese Abfrage verwenden, um die Eingaben von Benutzern zu überprüfen:

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

'

Das Aktualisieren Ihres Browsers gibt die anders -Anweisung jedes Mal, wenn Sie versuchen, einen Benutzernamen oder eine E-Mail-Adresse einzugeben, die bereits in der Datenbank vorhanden ist. Und wenn Sie eine neue eingeben, werden Ihre Daten erfolgreich gespeichert, indem die wenn Zustand.

Verwandt: So verwenden Sie die Python if-Anweisung

Das ist es! Sie haben gerade Ihre erste NoSQL-Datenbank mit Flask-CouchDB erstellt.

Obwohl sich das Erstellen und Abfragen von Datenbanken in CouchDB um die hier hervorgehobenen Beispiele dreht, können Sie die Funktionalitäten von Flask weiter erkunden. Zum Beispiel können Sie Eingabefelder mit wtforms und kennzeichnen Sie Duplikate mit der Nachricht von Flask Blitz .

Sie können Ihre Abfrage sogar an jQuery von JavaScript übergeben, um Eingaben zu validieren und Duplikate asynchron zu überprüfen.

Ist CouchDB besser als SQL-Datenbanken?

Die Verwendung von CouchDB oder einer anderen NoSQL-Datenbank mit Flask oder einer anderen Programmiertechnologie hängt von Ihren Vorlieben ab. Aber es ist praktisch, wenn es um strukturlose Daten und Rohmedien geht.

Bevor Sie sich entscheiden, sollten Sie sich jedoch die Unterschiede zwischen NoSQL- und SQL-Datenbanken ansehen, um zu entscheiden, welche davon für Ihr Projekt geeignet ist.

Teilen Teilen Tweet Email SQL vs. NoSQL: Was ist die beste Datenbank für Ihr nächstes Projekt?

Die Auswahl eines Datenbanktyps kann schwierig sein. Sollten Sie SQL oder NoSQL wählen?

Weiter lesen
Verwandte Themen
  • Programmierung
  • Datenbank
  • Programmierung
  • Codierungs-Tutorials
Über den Autor Idisou Omisola(94 veröffentlichte Artikel)

Idowu hat eine Leidenschaft für alles, was smarte Technologien und Produktivität ist. In seiner Freizeit spielt er mit Programmieren und wechselt bei Langeweile aufs Schachbrett, aber er liebt es auch, ab und zu aus der Routine auszubrechen. Seine Leidenschaft, Menschen den Weg in die moderne Technologie zu weisen, motiviert ihn, mehr zu schreiben.

Mehr von Idowu Omisola

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren