Kuinka yhdistää Flask -sovelluksesi CouchDB: hen: NoSQL -tietokanta

Kuinka yhdistää Flask -sovelluksesi CouchDB: hen: NoSQL -tietokanta

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ä CouchDB: n kaltaista NoSQL: ää 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. Joten 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ä tietokoneellesi on jo asennettu Python. Muussa tapauksessa siirry kohtaan python.org ja asenna uusin Python -versio tietokoneellesi.

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

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

miten yhdistän puhelimen tietokoneeseen
pip install flask

Yhdistä pullo CouchDB: llä

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

Tehdä tämä:

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

from couchdb import Server

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

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

Suorittaa database.py CLI: n kautta. Avaa sitten tai päivitä 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 ajaa Python -komentosarja

Huomautus: Varmista, että käytät tietokantojen nimeämistä pienillä kirjaimilla, 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:

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

Luo seuraavaksi Flask -sovellus ja CouchDB -palvelimen ilmentymä:

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

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

@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

'

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=development

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

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

flask run

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, kyselemään tietoja tietokannasta. Onneksi tämä on suhteellisen yksinkertaista.

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

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

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

#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

'

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

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

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

'

Selaimen päivittäminen palauttaa muu joka kerta, kun yrität syöttää käyttäjätunnuksen 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.

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

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

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • tietokanta
  • Ohjelmointi
  • Koodausoppaat
Kirjailijasta Idisou 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