Forbindelse af kolbe med SQL -databaser som PostgreSQL og SQLite er en knibe. Men rammen synkroniserer perfekt med NoSQL -databaser som CouchDB også. Og som en ekstra fordel kan du let forespørge på dine data, når du bruger CouchDB med Flask.
Klar til at foretage en ændring ved at bruge en NoSQL som CouchDB med din Flask -app? Sådan konfigureres CouchDB på din lokale maskine og forbinder den med Flask.
Hvad er CouchDB?
CouchDB er en NoSQL -database, der i øjeblikket ejes af Apache Software Foundation. Skrevet med Erlang, blev softwaren først udgivet i 2005.
I modsætning til de almindelige bordbundne databaser, du sandsynligvis er vant til, er CouchDB et ikke-relationelt databasesystem, der lagrer data som rå JSON.
CouchDB blokerer ikke, så den låser ikke databasen under dataindtastning. En af de stærke sider ved CouchDB er, at den bruger en multi-version samtidighedskontrolpolitik til at læse og skrive data. Så det giver mulighed for samtidige input fra flere brugere uden indblanding fra den eksisterende struktur af dataene i databasen.
Således er CouchDB hurtig under forespørgsler og let at arbejde med, mens du bruger asynkrone metoder. Når det er sagt, gør det ikke det bedre end dets SQL -modstykke. Hver teknologi har sine fordele og ulemper.
Opsætning af CouchDB
For at begynde at bruge CouchDB skal du downloade og installere en kompatibel version fra CouchDB's officielle websted.
Og hvis den nyeste version ikke virker for dig, skal du fortsætte til CouchDB arkiv og download version 1.6.1, som er en tidligere version af CouchDB.
Når du har installeret CouchDB, skal du køre det på din pc, som om du ville have en anden desktop -app.
Åbn din browser. Start derefter CouchDB's server ved at indsætte følgende i din adresselinje:
http://localhost: 5984/_utils/index.html
Opsæt Python og kolbe
Denne vejledning forudsætter dog, at du allerede har Python installeret på din pc. Gå ellers til python.org og installer den nyeste version af Python på din pc.
Når du har konfigureret CouchDB, skal du oprette en projektrodsmappe. Åbn derefter din kommandolinje til den mappe og opret en Python virtuelt miljø.
Installer den nyeste version af Flask i det virtuelle rum ved hjælp af pip:
pip installere kolbe
Tilslut kolbe med CouchDB
For at begynde at bruge CouchDB med din Flask -app skal du installere Flask-CouchDB, runtime -pakken til at forbinde databasen med Flask.
At gøre dette:
pip installere Flask-CouchDB
Når du har installeret Flask-CouchDB med succes opret en app.py fil i den pågældende rodmappe. På samme måde skal du oprette en database.py fil - dette håndterer oprettelsen af din database.
Åben database.py og importer følgende pakker:
fra couchdb import Server
Opret derefter din database i den samme fil ved hjælp af følgende kodeblok:
fra couchdb import Server
server = Server ()
db = server.create ('muocouch')
Udfør database.py via CLI. Åbn eller opdater derefter CouchDBs lokale server via din browser, som du gjorde tidligere. Du skulle nu se databasen (muocouch i dette tilfælde) angivet i CouchDB.
Relaterede:Sådan køres et Python -script
Bemærk: Sørg for, at du bruger en lille navngivningskonvention til databaser, da CouchDB muligvis ikke accepterer store eller blandede sager.
Gem dine første CouchDB -data ved hjælp af kolbe
I sidste ende er formålet med enhver database datalagring. Når du har en database i CouchDB, kan du begynde at gemme data i den fra din Flask -app med det samme.
Åbn for at starte app.py og importer følgende pakker:
fra kolbe import Kolbe
fra couchdb import Server
fra flaskext.couchdb importdokument
Opret derefter en Flask -app og CouchDB -serverinstans:
app = kolbe (__navn__, static_url_path = '/static')
app.debug = Sandt
server = Server ()
Lad os nu gemme nogle brugerinput i CouchDB:
@app.route ('/', metoder = ['GET', 'POST'])
def register ():
bruger = {
"username": "mediesite",
"email": "[email protected]",
"password": "krypterede data"
}
db = server ['muocouch'] #vælg databasen
doc_id, doc_rev = db.save (bruger) #lagre dine data i databasen
Vend tilbage "Dine data skal nu være i databasen
"
Hvis du vil, kan du indstille din Flask -server til udviklingstilstand, før du kører den.
For at gøre dette skal du køre følgende kommando via din CLI:
sæt FLASK_ENV = udvikling
Bemærk, at indstilling af servertilstand er valgfri. Det gør kun fejlfinding af din kode problemfri.
Men uanset serverindstillingens indstilling kan du starte kolbe -serveren via CMD:
kolbe løb
Kolbe, som standard, er din port dog lokal vært: 5000. Du skulle nu se meddelelsen i H2 tag, når du indlæser denne adresse via din browser.
Valider data og kontroller dubletter ved hjælp af CouchDB -forespørgsler
For at standardisere dette yderligere kan du bruge forespørgsler til at validere input og forhindre dubletter i din database. Forespørgsel på CouchDB er en smule anderledes end hvordan du gør dette med SQL -databaser.
CouchDB bruger, hvad det kalder "JavaScript -visninger" til at forespørge data fra databasen. Heldigvis er dette relativt enkelt.
Inden du går videre, ser sådan en grundlæggende CouchDB -forespørgselsvisning ud:
map_func = funktion (doc)
{emit (doc.doc_rev, doc); }
myQuery = [docType]. forespørgsel (db, map_func, reduc_fun = Ingen)
Lad os nu bruge ovenstående kode praktisk talt:
#Opret en dokumentobjektmodel kaldet "Brugere:"
klasse bruger (dokument):
doc_type = 'Bruger'
@app.route ('/', metoder = ['GET', 'POST'])
def register ():
bruger = {
"username": "mediesite",
"email": "[email protected]",
"password": "krypterede data"
}
db = server ['muocouch'] #vælg databasen
# Brug visningsfunktionen til at hente dine data fra CouchDB
map_func = funktion (doc)
{emit (doc.doc_rev, doc); }
# Få alle data ved at køre et forespørgselssæt
myQuery = User.query (db, map_func, reduc_fun = None, reverse = True)
q = [i ['brugernavn'] for i i myQuery] # Sløj alle brugernavne ud af databasen
q2 = [i ['email'] for i i myQuery] # Sløj alle e -mail -adresser ud af databasen
q3 = q+q2 # Flet begge forespørgsler til en enkelt liste
print (q3)
Vend tilbage "Dine data er nu i databasen
"
Ovenstående kode bruger Bruger klasse for at forespørge om data hentet af visningsfunktionen. Vær meget opmærksom på parametrene i forespørgselssættet (myQuery).
Trykning q3, som du gjorde ovenfor, skal nu udsende alle brugernavne og e -mail -adresser i databasen inden for kommandolinjen.
Så her kan du bruge denne forespørgsel til at validere brugernes input:
hvis ikke (bruger ['brugernavn'] i q3 eller bruger ['email'] i q3):
#gem dine data i databasen, hvis de ikke findes
doc_id, doc_rev = db.save (bruger)
Vend tilbage "Registreret med succes
"
andet:
Vend tilbage "Brugernavn eller e -mail findes
"
Opdatering af din browser returnerer andet erklæring hver gang du prøver at indtaste et brugernavn eller en e -mail, der allerede er i databasen. Og hvis du indtaster en ny, gemmer den dine data med succes ved at udføre hvis tilstand.
Relaterede:Sådan bruges Python if -erklæringen
Det er det! Du har lige oprettet din første NoSQL-database ved hjælp af Flask-CouchDB.
Selvom oprettelse og forespørgsel efter databaser i CouchDB drejer sig om de eksempler, vi fremhævede her, kan du undersøge Flask's funktionaliteter yderligere. For eksempel kan du spinde inputfelter op ved hjælp af wtforms og flag dubletter ved hjælp af Flask's besked blitz.
Du kan endda videregive din forespørgsel til JavaScript's jQuery for at validere input og kontrollere dubletter asynkront.
Er CouchDB bedre end SQL -databaser?
Brug af CouchDB eller en anden NoSQL -database med Flask eller anden programmeringsteknologi afhænger af dine præferencer. Men det er praktisk, når det handler om strukturløse data og rå medier.
Når det er sagt, før du beslutter dig, vil du måske se på forskellene mellem NoSQL- og SQL -databaser for at hjælpe dig med at beslutte, hvilken af dem der er egnet til dit projekt.
Det kan være svært at vælge en databasetype. Skal du vælge SQL eller NoSQL?
Læs Næste
- Programmering
- database
- Programmering
- Kodning Tutorials
Idowu brænder for alt smart teknologi og produktivitet. I fritiden leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde væk fra rutinen en gang imellem. Hans passion for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!
Klik her for at abonnere