Sådan forbinder du din kolbe -app med CouchDB: En NoSQL -database

Sådan forbinder du din kolbe -app med CouchDB: En NoSQL -database

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, ligesom med enhver 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 :

nest mini vs google home mini
pip install flask

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

from couchdb import Server

Opret derefter din database i den samme fil ved hjælp af følgende blok af kode:

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

Udfør database.py via CLI. Åbn derefter eller opdater 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 almindelig 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:

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

Opret derefter en Flask -app og CouchDB -serverinstans:

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

Lad os nu gemme nogle brugerinput 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 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:

set FLASK_ENV=development

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:

flask run

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

Lad os nu bruge ovenstående kode 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

'

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:

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

'

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 funktioner yderligere. For eksempel kan du spinde inputfelter op ved hjælp af wtforms og markér 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.

Del Del Tweet E -mail SQL vs NoSQL: Hvad er den bedste database til dit næste projekt?

Det kan være svært at vælge en databasetype. Skal du vælge SQL eller NoSQL?

Læs Næste
Relaterede emner
  • Programmering
  • database
  • Programmering
  • Kodning Tutorials
Om forfatteren Idisou Omisola(94 artikler udgivet)

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.

Mere fra Idowu Omisola

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