Kuidas ühendada oma kolvirakendus CouchDB -ga: NoSQL -i andmebaas

Kuidas ühendada oma kolvirakendus CouchDB -ga: NoSQL -i andmebaas

Flaski ühendamine SQL -andmebaasidega, nagu PostgreSQL ja SQLite, on lihtne. Kuid raamistik sünkroonib suurepäraselt ka NoSQL -i andmebaasidega, nagu CouchDB. Täiendava eelisena saate CouchDB ja Flaski kasutamisel hõlpsalt oma andmeid pärida.





Kas olete valmis muudatusi tegema, kasutades oma Flaski rakendusega NoSQL -i nagu CouchDB? Siit saate teada, kuidas seadistada CouchDB oma kohalikku masinasse ja ühendada see Flaskiga.





Mis on CouchDB?

CouchDB on NoSQL andmebaas, mis kuulub praegu Apache Software Foundationile. Erlangiga kirjutatud tarkvara ilmus esmakordselt 2005. aastal.



Erinevalt tavalistest tabelitega seotud andmebaasidest, millega olete tõenäoliselt harjunud, on CouchDB mitterelatsiooniline andmebaasihaldussüsteem, mis salvestab andmed töötlemata JSON-vormingus.

CouchDB ei blokeeri, seega ei lukusta see andmebaasi andmete sisestamise ajal. CouchDB üks tugevamaid külgi on see, et see kasutab andmete lugemiseks ja kirjutamiseks mitme versiooni samaaegsuse juhtimise poliitikat. Seega võimaldab see üheaegseid sisendeid mitmelt kasutajalt ilma andmebaasi andmete olemasoleva struktuuri sekkumiseta.



Seega on CouchDB päringute ajal kiire ja asünkroonsete meetodite kasutamisel lihtne töötada. See tähendab, et see ei muuda seda SQL -i vastest paremaks. Igal tehnoloogial on oma plussid ja miinused.

CouchDB seadistamine

CouchDB kasutamise alustamiseks laadige alla ja installige ühilduv versioon saidilt CouchDB ametlik veebisait .





Ja kui see uusim versioon teie jaoks ei tööta, jätkake CouchDB arhiiv ja laadige alla versioon 1.6.1, mis on CouchDB varasem versioon.

Kui olete CouchDB installinud, käivitage see oma arvutis nagu iga teine ​​töölauarakendus.





Avage oma brauser. Seejärel käivitage CouchDB server, kleepides oma aadressiribale järgmise:

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

Pythoni ja Flaski seadistamine

See õpetus eeldab aga, et teie arvutisse on Python juba installitud. Muidu minge aadressile python.org ja installige oma arvutisse Pythoni uusim versioon.

Kui olete CouchDB seadistanud, looge projekti juurkaust. Seejärel avage oma käsurea sellesse kataloogi ja looge a Pythoni virtuaalne keskkond .

Installige Flaski uusim versioon virtuaalsesse ruumi, kasutades pip :

hiire topeltklõps ühe klõpsuga
pip install flask

Ühendage kolb CouchDB -ga

CouchDB kasutamise alustamiseks rakendusega Flask installige see Flask-CouchDB , käituspakett andmebaasi ühendamiseks Flaskiga.

Selleks tehke järgmist.

pip install Flask-CouchDB

Kui olete installinud Flask-CouchDB looge edukalt app.py faili sellesse juurkausta. Samamoodi looge a database.py fail - see tegeleb teie andmebaasi loomisega.

Avatud database.py ja importige järgmised paketid:

from couchdb import Server

Seejärel looge oma andmebaas samasse faili, kasutades järgmist koodiplokki:

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

Käivita database.py CLI kaudu. Seejärel avage või värskendage oma brauseri kaudu CouchDB kohalikku serverit nagu varem. Nüüd peaksite nägema andmebaasi ( muocouch sel juhul) loetletud CouchDB -s.

Seotud: Kuidas käivitada Pythoni skripti

Märge: Veenduge, et kasutate andmebaaside jaoks väiketähtede nimetamise tava, kuna CouchDB ei pruugi aktsepteerida suurtähti või segatähti.

Salvestage oma esimese CouchDB andmed kolvi abil

Lõppkokkuvõttes on iga andmebaasi eesmärk andmete salvestamine. Kui teil on CouchDB -s andmebaas, saate kohe oma rakendusse Flask hakata sinna andmeid salvestama.

Alustamiseks avage app.py ja importige järgmised paketid:

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

Seejärel looge rakendus Flask ja CouchDB server:

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

Nüüd salvestame mõned kasutaja sisendid CouchDB -sse:

@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

'

Soovi korral saate oma Flaski serveri enne selle käivitamist arendusrežiimi seadistada.

Selleks käivitage oma CLI kaudu järgmine käsk:

set FLASK_ENV=development

Pange tähele, et serverirežiimi seadistamine on valikuline. See muudab teie koodi silumise probleemideta.

Kuid olenemata serverirežiimi seadetest, saate Flaski serverit CMD kaudu käivitada järgmiselt.

flask run

Flask aga vaikimisi teie port kohalik peremees: 5000 . Nüüd peaksite sõnumit kaustas nägema H2 märgend, kui laadite selle aadressi oma brauseri kaudu.

Andmete kinnitamine ja duplikaatide kontrollimine CouchDB päringute abil

Selle edasiseks standardiseerimiseks võite sisestuste kinnitamiseks ja andmebaasis topeltkohtade vältimiseks kasutada päringuid. CouchDB päring erineb natuke sellest, kuidas seda SQL -andmebaasidega teha.

CouchDB kasutab andmebaasist andmete pärimiseks seda, mida ta nimetab JavaScripti vaadeteks. Õnneks on see suhteliselt lihtne.

Enne edasist arengut näeb CouchDB põhiline päringuvaade välja järgmine.

map_func = '''function(doc)
{ emit(doc.doc_rev, doc); }'''
myQuery = [docType].query(db, map_func, reduce_fun=None)

Nüüd kasutame ülaltoodud koodi praktiliselt:

#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

'

Ülaltoodud kood kasutab Kasutaja klassi vaatamisfunktsiooni poolt toodud andmete päringute tegemiseks. Pöörake suurt tähelepanu päringukomplekti parameetritele ( myQuery ).

Trükkimine q3 , nagu te tegite eespool, peaks nüüd käsurealt väljastama kõik andmebaasis olevad kasutajanimed ja e -posti aadressid.

Nii saate selle päringu abil kasutajate sisendeid kinnitada järgmiselt.

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

'

Brauseri värskendamisel kuvatakse muidu avaldus iga kord, kui proovite sisestada kasutajanime või e -posti aadressi, mis on juba andmebaasis. Ja kui sisestate uue, salvestab see teie andmed edukalt, käivitades kui seisukorras.

Seotud: Kuidas Pythoni kasutada, kui avaldus

See on kõik! Lõite just oma esimese NoSQL andmebaasi Flask-CouchDB abil.

Kuigi andmebaaside loomine ja päringute tegemine CouchDB -s keerleb siin esile toodud näidete ümber, saate Flaski funktsioone lähemalt uurida. Näiteks saate sisestusvälju keerutada, kasutades wtforms ja märkige duplikaadid Flaski sõnumi abil välk .

Saate isegi sisestada päringu JavaScripti jQueryle, et sisendeid kinnitada ja duplikaate asünkroonselt kontrollida.

Kas CouchDB on parem kui SQL -andmebaasid?

CouchDB või mõne muu NoSQL -andmebaasi kasutamine koos kolvi või mõne muu programmeerimistehnoloogiaga sõltub teie eelistustest. Kuid see on kasulik struktuurita andmete ja töötlemata meediaga tegelemisel.

See tähendab, et enne otsustamist võiksite vaadata NoSQL ja SQL andmebaaside erinevusi, et aidata teil otsustada, milline neist sobib teie projekti jaoks.

Jaga Jaga Piiksuma E -post SQL vs NoSQL: milline on teie järgmise projekti jaoks parim andmebaas?

Andmebaasi tüübi valimine võib olla keeruline. Kas valida SQL või NoSQL?

Loe edasi
Seotud teemad
  • Programmeerimine
  • andmebaas
  • Programmeerimine
  • Kodeerimise õpetused
Autori kohta Idisou Omisola(Avaldatud 94 artiklit)

Idowu on kirglik kõige nutika tehnoloogia ja tootlikkuse vastu. Vabal ajal mängib ta kodeerimisega ja lülitab malelauale, kui tal on igav, kuid talle meeldib ka aeg -ajalt rutiinist lahti saada. Tema kirg näidata inimestele teed kaasaegses tehnoloogias motiveerib teda rohkem kirjutama.

Veel Idowu Omisolast

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin