Die Verbindung von Flask mit SQL-Datenbanken wie PostgreSQL und SQLite ist ein Kinderspiel. Aber auch mit NoSQL-Datenbanken wie CouchDB synchronisiert sich das Framework perfekt. 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 Rechner 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:
pip install flasche
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—diese verarbeitet Ihre Datenbankerstellung.
Offen datenbank.py und importieren Sie die folgenden Pakete:
vom couchdb-Importserver
Erstellen Sie als Nächstes Ihre Datenbank in derselben Datei mit dem folgenden Codeblock:
vom couchdb-Importserver
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 jetzt 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:
aus Flaschenimport Flasche
vom couchdb-Importserver
aus Flakonext.couchdb Importdokument
Erstellen Sie als Nächstes eine Flask-App und eine CouchDB-Serverinstanz:
app = Flask (__name__, static_url_path='/static')
app.debug=Wahr
Server = Server()
Speichern wir nun einige Benutzereingaben in CouchDB:
@app.route('/', Methoden=['GET', 'POST'])
def register():
Benutzer = {
"username":"Medienseite",
"email":"[email protected]",
"password":"verschlüsselteDaten"
}
db = server['muocouch'] #wähle die Datenbank
doc_id, doc_rev = db.save (user) #speichere deine Daten in der Datenbank
Rückkehr "Ihre Daten sollten jetzt in der Datenbank sein
"
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:
setze FLASK_ENV=Entwicklung
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:
Kolbenlauf
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. Glücklicherweise ist dies relativ einfach.
Bevor Sie fortfahren, sehen Sie wie folgt eine grundlegende CouchDB-Abfrageansicht aus:
map_func = Funktion (doc)
{ ausgeben (doc.doc_rev, doc); }
myQuery = [docType].query (db, map_func, Reduce_fun=None)
Jetzt verwenden wir den obigen Code praktisch:
#Erstelle ein Dokumentobjektmodell namens "Benutzer:"
Klasse Benutzer (Dokument):
doc_type = 'Benutzer'
@app.route('/', Methoden=['GET', 'POST'])
def register():
Benutzer = {
"username":"Medienseite",
"email":"[email protected]",
"password":"verschlüsselteDaten"
}
db = server['muocouch'] #wähle die Datenbank
# Nutze die Ansichtsfunktion um deine Daten von CouchDB zu holen
map_func = Funktion (doc)
{ ausgeben (doc.doc_rev, doc); }
# Rufen Sie alle Daten ab, indem Sie einen Abfragesatz ausführen
myQuery = User.query (db, map_func, Reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Alle Benutzernamen aus der Datenbank ausschleifen
q2 = [i['email'] for i in myQuery] # Alle E-Mail-Adressen aus der Datenbank ausschleifen
q3 = q+q2 # Beide Abfragen zu einer einzigen Liste zusammenführen
drucken (q3)
Rückkehr "Ihre Daten sind jetzt in der Datenbank
"
Der obige Code verwendet die Nutzer -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:
falls nicht (user['username'] in q3 oder user['email'] in q3):
#speichere deine Daten in der Datenbank, falls sie nicht existiert
doc_id, doc_rev = db.save (Benutzer)
Rückkehr "Erfolgreich registriert
"
anders:
Rückkehr "Benutzername oder E-Mail vorhanden
"
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.
Die Auswahl eines Datenbanktyps kann schwierig sein. Sollten Sie SQL oder NoSQL wählen?
Weiter lesen
- Programmierung
- Datenbank
- Programmierung
- Codierungs-Tutorials
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.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren