Slik kobler du din kolbe -app til CouchDB: En NoSQL -database

Slik kobler du din kolbe -app til CouchDB: En NoSQL -database

Å 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. Programmet 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.



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, lager 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 :

overfør windows 10 til en ny datamaskin
pip install flask

Koble til kolbe med CouchDB

For å begynne å bruke CouchDB med Flask -appen, installer Flask-CouchDB , kjøretidspakken for å koble databasen til Flask.

Å gjøre dette:

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

from couchdb import Server

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

from 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 -script

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:

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

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

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

La oss nå lagre noen brukerinnganger i 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

'

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:

set FLASK_ENV=development

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:

flask run

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

La oss nå bruke koden ovenfor praktisk talt:

#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

'

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:

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

'

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, lagres dataene dine med hell ved å kjøre hvis tilstand.

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 speide Flask funksjonalitet 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.

Dele Dele kvitring E -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 Idisou 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