Flaskin yhdistäminen SQL -tietokantoihin, kuten PostgreSQL ja SQLite, on helppoa. Mutta kehys synkronoi täydellisesti myös NoSQL -tietokantojen, kuten CouchDB: n, kanssa. Lisäetuna voit hakea tietoja helposti, kun käytät CouchDB: tä pulssin kanssa.

Oletko valmis tekemään muutoksia käyttämällä NoSQL: ää, kuten CouchDB, Flask -sovelluksesi kanssa? Näin voit asettaa CouchDB: n paikalliselle koneellesi ja liittää sen Flaskiin.

Mikä on CouchDB?

CouchDB on NoSQL -tietokanta, jonka omistaa tällä hetkellä Apache Software Foundation. Erlangin kanssa kirjoitettu ohjelmisto julkaistiin ensimmäisen kerran vuonna 2005.

Toisin kuin tavalliset taulukkoon linkitetyt tietokannat, joihin olet todennäköisesti tottunut, CouchDB on ei-relaatiotietokantojen hallintajärjestelmä, joka tallentaa tiedot raakana JSON-muodossa.

CouchDB ei estä, joten se ei lukitse tietokantaa tietojen syöttämisen aikana. Yksi CouchDB: n vahvuuksista on se, että se käyttää moniversioista samanaikaisuudenhallintakäytäntöä tietojen lukemiseen ja kirjoittamiseen. Se mahdollistaa samanaikaisten syötteiden syöttämisen useilta käyttäjiltä ilman häiriöitä tietokannan tietojen nykyisestä rakenteesta.

Siten CouchDB on nopea kyselyjen aikana ja helppo käsitellä asynkronisia menetelmiä käytettäessä. Se ei kuitenkaan tee siitä parempaa kuin sen SQL -vastine. Jokaisella tekniikalla on hyvät ja huonot puolensa.

CouchDB -asennus

Aloita CouchDB: n käyttö lataamalla ja asentamalla yhteensopiva versio osoitteesta CouchDB: n virallinen sivusto.

Ja jos viimeisin versio ei toimi sinulle, siirry kohtaan CouchDB -arkisto ja lataa versio 1.6.1, joka on CouchDB: n aiempi versio.

Kun olet asentanut CouchDB: n, suorita se tietokoneellasi kuten mikä tahansa muu työpöytäsovellus.

Avaa selaimesi. Käynnistä sitten CouchDB: n palvelin liittämällä seuraava osoitepalkkiisi:

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

Aseta Python ja Flask

Tässä opetusohjelmassa oletetaan kuitenkin, että Python on jo asennettu tietokoneellesi. Muussa tapauksessa siirry kohtaan python.org ja asenna uusin Python -versio tietokoneellesi.

Kun olet määrittänyt CouchDB: n, luo projektin juurikansio. Avaa sitten komentorivi kyseiseen hakemistoon ja luo Python -virtuaalinen ympäristö.

Asenna Flaskin uusin versio virtuaalitilaan käyttämällä pip:

pip -asennuspullo

Yhdistä pullo CouchDB: llä

Aloita CouchDB: n käyttö Flask -sovelluksesi kanssa asentamalla Flask-CouchDB, ajonaikainen paketti tietokannan yhdistämiseen Flask -laitteeseen.

Tehdä tämä:

pip asenna Flask-CouchDB

Kun olet asentanut Flask-CouchDB onnistuneesti, luo app.py tiedosto juurihakemistoon. Luo samalla tavalla a database.py tiedosto - tämä hoitaa tietokannan luomisen.

Avata database.py ja tuo seuraavat paketit:

couchdb -tuontipalvelimelta

Luo sitten tietokanta samaan tiedostoon käyttämällä seuraavaa koodilohkoa:

couchdb -tuontipalvelimelta
palvelin = Palvelin ()
db = server.create ('muocouch')

Suorittaa database.py CLI: n kautta. Avaa tai päivitä sitten CouchDB: n paikallinen palvelin selaimesi kautta kuten aiemmin. Sinun pitäisi nyt nähdä tietokanta (muocouch tässä tapauksessa) lueteltu CouchDB: ssä.

Aiheeseen liittyviä:Kuinka suorittaa Python -skripti

merkintä: Varmista, että käytät tietokantojen pieniä kirjaimia, koska CouchDB ei ehkä hyväksy isoja tai sekavia kirjaimia.

Tallenna ensimmäinen CouchDB -data pulloa käyttämällä

Viime kädessä minkä tahansa tietokannan tarkoitus on tietojen tallentaminen. Kun sinulla on tietokanta CouchDB: ssä, voit aloittaa tietojen tallentamisen siihen heti Flask -sovelluksestasi.

Aloita avaamalla app.py ja tuo seuraavat paketit:

pullon tuontipullosta
couchdb -tuontipalvelimelta
flaskext.couchdb -tuontiasiakirjasta

Luo seuraavaksi Flask -sovellus ja CouchDB -palvelinilmentymä:

app = Pullo (__name__, static_url_path = '/staattinen')
app.debug = Totta
palvelin = Palvelin ()

Tallennetaan nyt joitakin käyttäjän syötteitä CouchDB: hen:

@app.route ('/', Method = ['GET', 'POST'])
def rekisteri ():
käyttäjä = {
"käyttäjätunnus": "mediasivusto",
"email": "[email protected]",
"password": "encrypteddata"
}
db = palvelin ['muocouch'] #valitse tietokanta
doc_id, doc_rev = db.save (user) #tallenna tietosi tietokantaan
palata "

Tietojesi pitäisi nyt olla tietokannassa

"

Halutessasi voit asettaa Flask -palvelimesi kehitystilaan ennen sen käyttämistä.

Voit tehdä tämän suorittamalla seuraavan komennon CLI: n kautta:

set FLASK_ENV = kehitys

Huomaa, että palvelintilan asettaminen on valinnaista. Se tekee koodin virheenkorjauksesta vaivatonta.

Palvelintilan asetuksesta riippumatta voit käynnistää Flask -palvelimen CMD: n avulla seuraavasti:

pulloajo

Pullo on kuitenkin portin oletusarvo paikallinen isäntä: 5000. Sinun pitäisi nyt nähdä viesti H2 tunniste, kun lataat tämän osoitteen selaimesi kautta.

Tarkista tiedot ja tarkista kaksoiskappaleet CouchDB -kyselyillä

Voit standardoida tämän edelleen käyttämällä kyselyitä syötteiden vahvistamiseksi ja kaksoiskappaleiden estämiseksi tietokannassasi. CouchDB: n kysely on hieman erilainen kuin se, miten teet tämän SQL -tietokantojen kanssa.

CouchDB käyttää sitä, mitä se kutsuu "JavaScript -näkymiksi" tietojen kyselyyn tietokannasta. Onneksi tämä on suhteellisen yksinkertaista.

Ennen kuin jatkat eteenpäin, CouchDB -kyselyn perusnäkymä näyttää tältä:

map_func = toiminto (asiakirja) 
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, Redu_fun = Ei mitään)

Käytämme nyt yllä olevaa koodia käytännössä:

#Luo asiakirjaobjektimalli nimeltä "Käyttäjät:"
luokan käyttäjä (asiakirja):
doc_type = 'Käyttäjä'
@app.route ('/', Method = ['GET', 'POST'])
def rekisteri ():
käyttäjä = {
"käyttäjätunnus": "mediasivusto",
"email": "[email protected]",
"password": "encrypteddata"
}
db = palvelin ['muocouch'] #valitse tietokanta
# Hae tiedot CouchDB: stä käyttämällä katselutoimintoa
map_func = toiminto (asiakirja)
{emit (doc.doc_rev, doc); }
# Hanki kaikki tiedot suorittamalla kyselyjoukko
myQuery = User.query (db, map_func, Redu_fun = Ei mitään, käänteinen = True)
q = [i ['käyttäjänimi'] i: lle myQueryssä] # Poista kaikki käyttäjätunnukset tietokannasta
q2 = [i ['email'] for i in myQuery] # Poista kaikki sähköpostiosoitteet tietokannasta
q3 = q+q2 # Yhdistä molemmat kyselyt yhteen luetteloon
tulosta (q3)
palata "

Tietosi ovat nyt tietokannassa

"

Yllä oleva koodi käyttää Käyttäjä luokka kyselynäkymätoiminnon hakemista tiedoista. Kiinnitä erityistä huomiota kyselyjoukon parametreihin (myQuery).

Tulostus q3, kuten teit edellä, pitäisi nyt antaa kaikki käyttäjätunnukset ja sähköpostiosoitteet komentorivin tietokannassa.

Joten voit käyttää tätä kyselyä käyttäjien syötteiden vahvistamiseen seuraavasti:

jos ei (käyttäjä ['käyttäjänimi'] q3: ssa tai käyttäjä ['email'] q3: ssa):
#tallenna tietosi tietokantaan, jos niitä ei ole
doc_id, doc_rev = db.save (käyttäjä)
palata "

Rekisteröinti onnistui

"
muu:
palata "

Käyttäjätunnus tai sähköpostiosoite on olemassa

"

Selaimen päivittäminen palauttaa muu joka kerta, kun yrität syöttää käyttäjänimen tai sähköpostin, joka on jo tietokannassa. Ja jos kirjoitat uuden, se tallentaa tietosi onnistuneesti suorittamalla jos kunto.

Aiheeseen liittyviä:Kuinka käyttää Pythonia, jos lausunto

Se siitä! Loit juuri ensimmäisen NoSQL-tietokantasi Flask-CouchDB: llä.

Vaikka tietokantojen luominen ja kyseleminen CouchDB: ssä perustuu tässä korostettuihin esimerkkeihin, voit tutkia Flaskin toimintoja tarkemmin. Voit esimerkiksi lisätä syöttökenttiä käyttämällä wtforms ja merkitse kaksoiskappaleet Flaskin viestin avulla salama.

Voit jopa siirtää kyselysi JavaScriptin jQueryyn tulojen vahvistamiseksi ja päällekkäisyyksien tarkistamiseksi asynkronisesti.

Onko CouchDB parempi kuin SQL -tietokannat?

CouchDB: n tai muun NoSQL -tietokannan käyttö Flaskin tai muun ohjelmointitekniikan kanssa riippuu mieltymyksistäsi. Mutta se on kätevää, kun käsitellään rakenteettomia tietoja ja raakamediaa.

Ennen kuin teet päätöksen, sinun kannattaa ehkä tarkastella eroja NoSQL- ja SQL -tietokantojen välillä, jotta voit päättää, mikä niistä sopii projektillesi.

JaaTweetSähköposti
SQL vs. NoSQL: Mikä on paras tietokanta seuraavaan projektiin?

Tietokantatyypin valitseminen voi olla hankalaa. Pitäisikö valita SQL vai NoSQL?

Lue seuraava

Liittyvät aiheet
  • Ohjelmointi
  • tietokanta
  • Ohjelmointi
  • Koodausoppaat
Kirjailijasta
Idowu Omisola (94 artikkelia julkaistu)

Idowu on intohimoinen kaikkeen älykkääseen tekniikkaan ja tuottavuuteen. Vapaa -ajallaan hän leikkii koodauksella ja vaihtaa shakkilaudalle, kun on kyllästynyt, mutta hän myös rakastaa irtautumista rutiinista silloin tällöin. Hänen intohimonsa näyttää ihmisille tie modernin tekniikan ympärillä motivoi häntä kirjoittamaan enemmän.

Lisää Idowu Omisolasta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi