Att ansluta Flask med SQL -databaser som PostgreSQL och SQLite är en knep. Men ramverket synkroniseras perfekt med NoSQL -databaser som CouchDB också. Och som en extra fördel kan du enkelt fråga efter dina data när du använder CouchDB med Flask.

Klar att göra en ändring genom att använda en NoSQL som CouchDB med din Flask -app? Så här konfigurerar du CouchDB på din lokala maskin och ansluter den med Flask.

Vad är CouchDB?

CouchDB är en NoSQL -databas som för närvarande ägs av Apache Software Foundation. Skrivet med Erlang, mjukvaran släpptes första gången 2005.

Till skillnad från de vanliga tabellkopplade databaserna du troligen är van vid, är CouchDB ett icke-relationellt databashanteringssystem som lagrar data som rå JSON.

CouchDB blockerar inte, så det låser inte databasen under datainmatning. En av de starka sidorna med CouchDB är att den använder en multipelversions samtidighetskontrollpolicy för att läsa och skriva data. Så det tillåter samtidiga inmatningar från flera användare utan störningar från den befintliga strukturen för data i databasen.

instagram viewer

Således är CouchDB snabb vid förfrågningar och lätt att arbeta med när man använder asynkrona metoder. Som sagt, det gör det inte bättre än dess SQL -motsvarighet. Varje teknik har sina fördelar och nackdelar.

CouchDB -inställning

För att börja använda CouchDB, ladda ner och installera en kompatibel version från CouchDB: s officiella webbplats.

Och om den senaste versionen inte fungerar för dig, gå vidare till CouchDB -arkiv och ladda ner version 1.6.1, som är en tidigare version av CouchDB.

När du har installerat CouchDB kör du den på din dator som om du gör någon annan stationär app.

Öppna din webbläsare. Starta sedan CouchDBs server genom att klistra in följande i adressfältet:

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

Ställ in Python och kolv

Denna handledning förutsätter dock att du redan har Python installerat på din dator. Gå annars till python.org och installera den senaste versionen av Python på din dator.

När du har konfigurerat CouchDB skapar du en projektrotmapp. Öppna sedan kommandoraden till den katalogen och skapa en Python virtuell miljö.

Installera den senaste versionen av Flask i det virtuella utrymmet med pip:

pip installera kolv

Anslut kolven med CouchDB

För att börja använda CouchDB med din Flask -app, installera Kolv-soffaDB, körtidspaketet för att ansluta databasen med Flask.

Att göra detta:

pip installera Flask-CouchDB

När du har installerat Kolv-soffaDB framgångsrikt, skapa en app.py filen i den rotmappen. Skapa på samma sätt en databas.py fil - detta hanterar skapandet av din databas.

Öppen databas.py och importera följande paket:

från couchdb import Server

Skapa sedan din databas i samma fil med följande kodblock:

från couchdb import Server
server = Server ()
db = server.create ('muocouch')

Kör databas.py via CLI. Öppna eller uppdatera sedan CouchDB: s lokala server via din webbläsare som du gjorde tidigare. Du bör nu se databasen (muocouch i detta fall) som anges i CouchDB.

Relaterad:Hur man kör ett Python -skript

Notera: Se till att du använder en liten namngivningskonvention för databaser, eftersom CouchDB kanske inte accepterar versaler eller blandade versaler.

Lagra dina första CouchDB -data med hjälp av kolv

I slutändan är syftet med en databas datalagring. När du väl har en databas i CouchDB kan du börja lagra data i den från din Flask -app direkt.

För att börja, öppna app.py och importera följande paket:

från kolvimport Flask
från couchdb import Server
från flaskext.couchdb importdokument

Skapa sedan en Flask -app och CouchDB -serverinstans:

app = kolv (__name__, static_url_path = '/static')
app.debug = Sant
server = Server ()

Låt oss nu lagra några användarinmatningar i CouchDB:

@app.route ('/', metoder = ['GET', 'POST'])
def register ():
användare = {
"username": "mediesajt",
"email": "[email protected]",
"password": "krypterade data"
}
db = server ['muocouch'] #välj databasen
doc_id, doc_rev = db.save (användare) #lagra dina data i databasen
lämna tillbaka "

Dina uppgifter ska nu finnas i databasen

"

Om du vill kan du ställa in din Flask -server till utvecklingsläge innan du kör den.

För att göra detta, kör följande kommando via din CLI:

set FLASK_ENV = utveckling

Observera att inställning av servern är valfritt. Det gör bara felsökning av din kod problemfri.

Men oavsett serverlägesinställning, så här startar du kolvservern via CMD:

kolvkörning

Kolv, dock, är standard din port till lokal värd: 5000. Du bör nu se meddelandet i H2 tag när du laddar den här adressen via din webbläsare.

Verifiera data och kontrollera dubbletter med hjälp av CouchDB -frågor

För att standardisera detta ytterligare kan du använda frågor för att validera inmatningar och förhindra dubbletter i din databas. Att fråga CouchDB är lite annorlunda än hur du gör detta med SQL -databaser.

CouchDB använder vad det kallar "JavaScript -vyer" för att söka efter data från databasen. Lyckligtvis är detta relativt enkelt.

Så här ser en vanlig CouchDB -sökfråga ut innan du går vidare:

map_func = funktion (doc) 
{avge (doc.doc_rev, doc); }
myQuery = [docType]. fråga (db, map_func, reduc_fun = None)

Låt oss nu använda koden ovan praktiskt taget:

#Skapa en dokumentobjektmodell som heter "Användare:"
klassanvändare (dokument):
doc_type = 'Användare'
@app.route ('/', metoder = ['GET', 'POST'])
def register ():
användare = {
"username": "mediesajt",
"email": "[email protected]",
"password": "krypterade data"
}
db = server ['muocouch'] #välj databasen
# Använd visningsfunktionen för att hämta dina data från CouchDB
map_func = funktion (doc)
{avge (doc.doc_rev, doc); }
# Få all data genom att köra en frågeset
myQuery = User.query (db, map_func, reduc_fun = None, reverse = True)
q = [i ['användarnamn'] för i i myQuery] # Släng ut alla användarnamn från databasen
q2 = [i ['e -post'] för i i myQuery] # Loopa ut alla e -postadresser från databasen
q3 = q+q2 # Slå ihop båda frågorna till en enda lista
skriva ut (q3)
lämna tillbaka "

Dina data finns nu i databasen

"

Koden ovan använder Användare class för att fråga efter data som hämtats av view -funktionen. Var noga med parametrarna i frågesatsen (myQuery).

Utskrift q3, som du gjorde ovan, bör nu mata ut alla användarnamn och e -postadresser i databasen inom kommandoraden.

Så här kan du använda den här frågan för att validera användarnas inmatningar:

om inte (användaren ['användarnamn'] i q3 eller användaren ['e -post'] i q3):
#lagra dina data i databasen om den inte finns
doc_id, doc_rev = db.save (användare)
lämna tillbaka "

Registreringen lyckades

"
annan:
lämna tillbaka "

Användarnamn eller e -post finns

"

Uppdatering av din webbläsare returnerar annan uttalande varje gång du försöker mata in ett användarnamn eller ett e -postmeddelande som redan finns i databasen. Och om du anger en ny, lagras dina data framgångsrikt genom att köra om tillstånd.

Relaterad:Hur man använder Python if Statement

Det är allt! Du skapade just din första NoSQL-databas med Flask-CouchDB.

Även om du skapar och frågar efter databaser i CouchDB kretsar kring exemplen vi markerade här, kan du spåra Flask funktioner ytterligare. Du kan till exempel rotera inmatningsfält med wtforms och flagga dubbletter med hjälp av Flask's meddelande blixt.

Du kan till och med överföra din fråga till JavaScript jQuery för att validera inmatningar och kontrollera dubbletter asynkront.

Är CouchDB bättre än SQL -databaser?

Att använda CouchDB eller någon annan NoSQL -databas med Flask eller annan programmeringsteknik beror på dina preferenser. Men det är praktiskt när man hanterar strukturlösa data och rådata.

Som sagt, innan du bestämmer dig kanske du vill titta på skillnaderna mellan NoSQL- och SQL -databaser för att hjälpa dig att bestämma vilken av dem som är lämplig för ditt projekt.

Dela med sigTweetE-post
SQL vs. NoSQL: Vilken är den bästa databasen för ditt nästa projekt?

Att välja en databastyp kan vara svårt. Ska du välja SQL eller NoSQL?

Läs Nästa

Relaterade ämnen
  • Programmering
  • databas
  • Programmering
  • Handledning för kodning
Om författaren
Idowu Omisola (94 artiklar publicerade)

Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig från rutinen då och då. Hans passion för att visa människor vägen kring modern teknik motiverar honom att skriva mer.

Mer från Idowu Omisola

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera