Å koble Flask med SQL -databaser som PostgreSQL og SQLite er en kule. Men rammeverket synkroniserer perfekt med NoSQL -databaser som CouchDB også. Og som en ekstra fordel kan du enkelt spørre om dataene dine når du bruker CouchDB med Flask.

Klar til å gjøre en endring ved å bruke en NoSQL som CouchDB med Flask -appen din? Slik konfigurerer du CouchDB på din lokale maskin og kobler den til Flask.

Hva er CouchDB?

CouchDB er en NoSQL -database som for tiden eies av Apache Software Foundation. Programvaren ble skrevet med Erlang og ble først utgitt i 2005.

I motsetning til de vanlige tabellkoblede databasene du mest sannsynlig er vant til, er CouchDB et ikke-relasjonelt databasesystem som lagrer data som rå JSON.

CouchDB blokkerer ikke, så den låser ikke databasen under datainndata. En av de sterke sidene med CouchDB er at den bruker en multi-versjon samtidighetskontrollpolicy for å lese og skrive data. Så det tillater samtidige innganger fra flere brukere uten forstyrrelser fra den eksisterende strukturen til dataene i databasen.

instagram viewer

Dermed er CouchDB rask under forespørsler og lett å jobbe med mens du bruker asynkrone metoder. Når det er sagt, gjør dette ikke det bedre enn SQL -motstykket. Hver teknologi har sine fordeler og ulemper.

Sett opp CouchDB

For å begynne å bruke CouchDB, last ned og installer en kompatibel versjon fra CouchDBs offisielle nettsted.

Og hvis den siste versjonen ikke fungerer for deg, fortsett til CouchDB -arkiv og last ned versjon 1.6.1, som er en tidligere versjon av CouchDB.

Når du har installert CouchDB, kan du kjøre den på PC -en din som på alle andre skrivebordsprogrammer.

Åpne nettleseren din. Start deretter CouchDBs server ved å lime inn følgende i adressefeltet:

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

Sett opp Python og kolbe

Denne opplæringen antar imidlertid at du allerede har Python installert på PCen. Gå ellers til python.org og installer den nyeste versjonen av Python på din PC.

Når du har konfigurert CouchDB, oppretter du en prosjektrotmappe. Åpne deretter kommandolinjen til den katalogen og opprett en Python virtuelt miljø.

Installer den nyeste versjonen av Flask i det virtuelle rommet ved hjelp av pip:

pip installere kolbe

Koble til kolbe med CouchDB

For å begynne å bruke CouchDB med Flask -appen, installer Flask-CouchDB, runtime -pakken for å koble databasen til Flask.

Å gjøre dette:

pip installere Flask-CouchDB

Når du har installert Flask-CouchDB opprett en app.py filen i rotmappen. På samme måte kan du lage en database.py fil - dette håndterer opprettelsen av databasen.

Åpen database.py og importer følgende pakker:

fra couchdb import Server

Deretter oppretter du databasen din i den samme filen ved å bruke følgende kodeblokk:

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

Henrette database.py via CLI. Åpne eller oppdater deretter CouchDBs lokale server via nettleseren din som du gjorde tidligere. Du bør nå se databasen (muocouch i dette tilfellet) oppført i CouchDB.

I slekt:Hvordan kjøre et Python -skript

Merk: Sørg for at du bruker en liten navnekonvensjon for databaser, ettersom CouchDB kanskje ikke godtar store eller blandede bokstaver.

Lagre dine første CouchDB -data ved hjelp av kolbe

Til syvende og sist er formålet med enhver database datalagring. Når du har en database i CouchDB, kan du begynne å lagre data i den fra din Flask -app med en gang.

For å starte, åpne app.py og importer følgende pakker:

fra kolbeimport Flaske
fra couchdb import Server
fra flaskext.couchdb importdokument

Deretter lager du en Flask -app og CouchDB -serverforekomst:

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

La oss lagre noen brukerinnganger i CouchDB:

@app.route ('/', methods = ['GET', 'POST'])
def register ():
bruker = {
"username": "medieside",
"email": "[email protected]",
"password": "krypterte data"
}
db = server ['muocouch'] #velg databasen
doc_id, doc_rev = db.save (bruker) #lagre dataene i databasen
komme tilbake "

Dataene dine skal nå være i databasen

"

Hvis du vil, kan du sette Flask -serveren til utviklingsmodus før du kjører den.

For å gjøre dette, kjør følgende kommando via CLI:

sett FLASK_ENV = utvikling

Vær oppmerksom på at det er valgfritt å angi servermodus. Det gjør bare feilsøking av koden din problemfri.

Men uansett servermodusinnstilling, kan du starte Flask -serveren via CMD:

kolbe kjøre

Kolbe, derimot, angir porten din som standard lokal vert: 5000. Du bør nå se meldingen i H2 tag når du laster denne adressen via nettleseren din.

Valider data og kontroller duplikater ved hjelp av CouchDB -forespørsler

For å standardisere dette ytterligere kan du bruke forespørsler til å validere innganger og forhindre duplikater i databasen. Å spørre CouchDB er litt annerledes enn hvordan du gjør dette med SQL -databaser.

CouchDB bruker det den kaller "JavaScript -visninger" for å spørre etter data fra databasen. Heldigvis er dette relativt enkelt.

Før du går videre, ser en grunnleggende CouchDB -spørringsvisning slik ut:

map_func = funksjon (doc) 
{avgi (doc.doc_rev, doc); }
myQuery = [docType]. forespørsel (db, map_func, reduc_fun = Ingen)

La oss nå bruke koden ovenfor praktisk talt:

#Lag en dokumentobjektmodell kalt "Brukere:"
klasse bruker (dokument):
doc_type = 'Bruker'
@app.route ('/', methods = ['GET', 'POST'])
def register ():
bruker = {
"username": "medieside",
"email": "[email protected]",
"password": "krypterte data"
}
db = server ['muocouch'] #velg databasen
# Bruk visningsfunksjonen til å hente dataene dine fra CouchDB
map_func = funksjon (doc)
{avgi (doc.doc_rev, doc); }
# Få alle dataene ved å kjøre et spørresett
myQuery = User.query (db, map_func, reduce_fun = None, reverse = True)
q = [i ['brukernavn'] for i i myQuery] # Sløyfe alle brukernavnene fra databasen
q2 = [i ['email'] for i in myQuery] # Sløyfe alle e -postadressene fra databasen
q3 = q+q2 # Slå sammen begge søkene i en enkelt liste
skrive ut (q3)
komme tilbake "

Dataene dine er nå i databasen

"

Koden ovenfor bruker Bruker klasse for å søke etter dataene som er hentet av visningsfunksjonen. Vær nøye med parameterne i spørresettet (myQuery).

Printing q3, som du gjorde ovenfor, skal nå sende ut alle brukernavn og e -postadresser i databasen på kommandolinjen.

Så her kan du bruke denne spørringen til å validere brukerens innspill:

hvis ikke (bruker ['brukernavn'] i q3 eller bruker ['e -post'] i q3):
#lagre dataene dine i databasen hvis de ikke finnes
doc_id, doc_rev = db.save (bruker)
komme tilbake "

Registrert vellykket

"
ellers:
komme tilbake "

Brukernavn eller e -post finnes

"

Oppdatering av nettleseren din returnerer ellers uttalelse hver gang du prøver å legge inn et brukernavn eller en e -post som allerede er i databasen. Og hvis du skriver inn en ny, lagrer den dataene dine med hell ved å kjøre hvis betingelse.

I slekt:Slik bruker du Python if -erklæringen

Det er det! Du har nettopp opprettet din første NoSQL-database ved hjelp av Flask-CouchDB.

Selv om opprettelse og spørring av databaser i CouchDB dreier seg om eksemplene vi fremhevet her, kan du spore Flask sine funksjoner videre. For eksempel kan du spinne opp inndatafelt ved hjelp av wtforms og flagg duplikater ved å bruke Flask's melding blits.

Du kan til og med overføre spørringen til JavaScript's jQuery for å validere innganger og kontrollere duplikater asynkront.

Er CouchDB bedre enn SQL -databaser?

Bruk av CouchDB eller en annen NoSQL -database med Flask eller annen programmeringsteknologi avhenger av dine preferanser. Men det kommer godt med når du arbeider med strukturløse data og råmedier.

Når det er sagt, før du bestemmer deg, vil du kanskje se på forskjellene mellom NoSQL- og SQL -databaser for å hjelpe deg med å bestemme hvilken av dem som er egnet for prosjektet ditt.

DelekvitringE -post
SQL vs. NoSQL: Hva er den beste databasen for ditt neste prosjekt?

Å velge en databasetype kan være vanskelig. Skal du velge SQL eller NoSQL?

Les neste

Relaterte temaer
  • Programmering
  • database
  • Programmering
  • Opplæringsprogrammer for koding
Om forfatteren
Idowu Omisola (94 artikler publisert)

Idowu brenner for alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han liker også å bryte fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.

Mer fra Idowu Omisola

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere