A lombik összekapcsolása olyan SQL -adatbázisokkal, mint a PostgreSQL és az SQLite, egyszerű. De a keretrendszer tökéletesen szinkronizálható a NoSQL adatbázisokkal, például a CouchDB -vel is. A CouchDB és a Flask együttes használatával pedig további előnyként könnyen lekérdezheti adatait.

Készen áll a változtatásra egy olyan NoSQL használatával, mint a CouchDB a Flask alkalmazással? Az alábbiakban bemutatjuk, hogyan állíthatja be a CouchDB -t a helyi gépén, és hogyan csatlakoztathatja a Flask -hoz.

Mi az a CouchDB?

A CouchDB egy NoSQL adatbázis, amely jelenleg az Apache Software Foundation tulajdonában van. Az Erlanggal írt szoftver először 2005 -ben jelent meg.

Ellentétben a szokásos, táblához kapcsolt adatbázisokkal, amelyekhez nagy valószínűséggel szokott, a CouchDB egy nem relációs adatbázis-kezelő rendszer, amely nyers JSON-ként tárolja az adatokat.

A CouchDB nem blokkol, így nem zárolja le az adatbázist az adatbevitel során. A CouchDB egyik erős oldala, hogy több verziójú párhuzamossági szabályzatot használ az adatok olvasására és írására. Így lehetővé teszi több felhasználó egyidejű bevitelét anélkül, hogy az adatbázisban lévő adatok meglévő struktúrája beavatkozna.

Így a CouchDB gyors a lekérdezések során, és könnyen kezelhető aszinkron módszerek használata közben. Ez azt jelenti, hogy ettől nem lesz jobb, mint az SQL társa. Minden technológiának megvannak az előnyei és hátrányai.

A CouchDB beállítása

A CouchDB használatának megkezdéséhez töltse le és telepítse a kompatibilis verziót A CouchDB hivatalos weboldala.

És ha ez a legújabb verzió nem működik az Ön számára, folytassa a CouchDB archívum és töltse le az 1.6.1 verziót, amely a CouchDB korábbi verziója.

A CouchDB telepítése után futtassa a számítógépen, mint bármely más asztali alkalmazást.

Nyissa meg a böngészőt. Ezután indítsa el a CouchDB szerverét a következő beillesztésével a címsorba:

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

A Python és a Flask beállítása

Ez az oktatóanyag azonban feltételezi, hogy a Python már telepítve van a számítógépre. Ellenkező esetben menjen a python.org és telepítse a Python legújabb verzióját a számítógépére.

A CouchDB beállítása után hozzon létre egy projekt gyökérmappáját. Ezután nyissa meg a parancssort az adott könyvtárba, és hozza létre a Python virtuális környezet.

Telepítse a Flask legújabb verzióját a virtuális térbe a segítségével csipog:

pip telepítő lombik

Csatlakoztassa a lombikot a CouchDB -vel

A CouchDB használatának megkezdéséhez a Flask alkalmazással telepítse Flask-CouchDB, a futásidejű csomag az adatbázis és a lombik összekapcsolásához.

Ezt csináld meg:

pip install Flask-CouchDB

Miután telepítette Flask-CouchDB sikeresen hozzon létre egy app.py fájlt abban a gyökérmappában. Hasonlóképpen hozzon létre egy database.py fájl - ez kezeli az adatbázis létrehozását.

Nyisd ki database.py és importálja a következő csomagokat:

a couchdb import szerverről

Ezután hozza létre adatbázisát ugyanabban a fájlban a következő kódblokk használatával:

a couchdb import szerverről
szerver = Szerver ()
db = szerver.create ('muocouch')

Végrehajtás database.py a CLI -n keresztül. Ezután nyissa meg vagy frissítse a CouchDB helyi szerverét a böngészőn keresztül, mint korábban. Most látnia kell az adatbázist (muocouch ebben az esetben) szerepel a CouchDB -ben.

Összefüggő:Python -szkript futtatása

Jegyzet: Győződjön meg arról, hogy kisbetűs elnevezési konvenciót használ az adatbázisokhoz, mivel előfordulhat, hogy a CouchDB nem fogad el nagy- vagy vegyesbetűket.

Tárolja első CouchDB adatait lombik segítségével

Végső soron minden adatbázis célja az adattárolás. Miután rendelkezik adatbázissal a CouchDB -ben, azonnal megkezdheti az adatok tárolását a Flask alkalmazásból.

Kezdéshez nyissa meg app.py és importálja a következő csomagokat:

lombik import lombikból
a couchdb import szerverről
from flaskext.couchdb import Document

Ezután hozzon létre egy Flask alkalmazást és a CouchDB szerverpéldányt:

app = Flask (__name__, static_url_path = '/static')
app.debug = Igaz
szerver = Szerver ()

Most tároljunk néhány felhasználói adatot a CouchDB -ben:

@app.route ('/', metódusok = ['GET', 'POST'])
def register ():
felhasználó = {
"username": "médiaoldal",
"email": "[email protected]",
"password": "encrypteddata"
}
db = szerver ['muocouch'] #Válassza ki az adatbázist
doc_id, doc_rev = db.save (user) #tárolja adatait az adatbázisban
Visszatérés "

Az adatoknak mostantól az adatbázisban kell lenniük

"

Ha úgy tetszik, a Flask szervert fejlesztési módba állíthatja, mielőtt futtatná.

Ehhez futtassa a következő parancsot a CLI -n keresztül:

set FLASK_ENV = fejlesztés

Ne feledje, hogy a szerver mód beállítása opcionális. Ez csak gond nélkül teszi a kód hibakeresését.

A szerver mód beállításaitól függetlenül a következőképpen indíthatja el a lombik szervert a CMD -n keresztül:

lombikfutás

A lombik azonban alapértelmezés szerint a portot használja helyi gazda: 5000. Most látnia kell az üzenetet a H2 címkét, miután betöltötte ezt a címet a böngészőn keresztül.

Ellenőrizze az adatokat és ellenőrizze az ismétlődéseket a CouchDB lekérdezések használatával

Ennek további szabványosításához lekérdezések segítségével ellenőrizheti a bemeneteket, és megakadályozhatja az ismétlődéseket az adatbázisban. A CouchDB lekérdezése kissé eltér attól, ahogy ezt SQL adatbázisokkal teszi.

A CouchDB az úgynevezett "JavaScript nézeteket" használja az adatbázisból származó adatok lekérdezéséhez. Szerencsére ez viszonylag egyszerű.

Mielőtt továbblépne, így néz ki egy alapvető CouchDB lekérdezési nézet:

map_func = függvény (doc) 
{emit (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, Redu_fun = Nincs)

Most gyakorlatilag használjuk a fenti kódot:

#Hozzon létre egy ""Felhasználók:"
osztályú felhasználó (dokumentum):
doc_type = 'Felhasználó'
@app.route ('/', metódusok = ['GET', 'POST'])
def register ():
felhasználó = {
"username": "médiaoldal",
"email": "[email protected]",
"password": "encrypteddata"
}
db = szerver ['muocouch'] #Válassza ki az adatbázist
# Használja a nézet funkciót az adatok lekéréséhez a CouchDB -ből
map_func = függvény (doc)
{emit (doc.doc_rev, doc); }
# Minden adatot lekérdezéskészlet futtatásával szerezhet be
myQuery = User.query (db, map_func, Redu_fun = Nincs, fordított = Igaz)
q = [i ['felhasználónév'] az i -hoz a myQuery -ben] # Húzza ki az összes felhasználónevet az adatbázisból
q2 = [i ['email'] for i in myQuery] # Húzza ki az összes e -mail címet az adatbázisból
q3 = q+q2 # Mindkét lekérdezés egyesítése egyetlen listába
nyomtatás (q3)
Visszatérés "

Adatai most az adatbázisban vannak

"

A fenti kód a Felhasználó osztály a nézetfüggvény által lekért adatok lekérdezéséhez. Ügyeljen a lekérdezéskészlet paramétereire (myQuery).

Nyomtatás q3, mint a fentiekben, most a parancssorban az adatbázis összes felhasználónevét és e -mail címét kell kiadnia.

Tehát a következőképpen használhatja ezt a lekérdezést a felhasználók bevitelének ellenőrzéséhez:

ha nem (user ['username'] in the q3 or user ['email'] in q3):
#tárolja adatait az adatbázisban, ha nem létezik
doc_id, doc_rev = db.save (felhasználó)
Visszatérés "

Sikeresen regisztrált

"
más:
Visszatérés "

Felhasználónév vagy e -mail -cím létezik

"

A böngésző frissítése visszaadja a más utasítást minden alkalommal, amikor olyan felhasználónevet vagy e -mailt próbál megadni, amely már szerepel az adatbázisban. Ha pedig újat ír be, az sikeresen tárolja adatait a ha feltétel.

Összefüggő:Hogyan kell használni a Python -t, ha az utasítás

Ez az! Most hozta létre első NoSQL adatbázisát a Flask-CouchDB segítségével.

Bár az adatbázisok létrehozása és lekérdezése a CouchDB -ben az itt kiemelt példákon alapul, a Flask funkcióit tovább kutathatja. Például a beviteli mezőket a segítségével felpörgetheti wtforms és megjelöli az ismétlődéseket Flask üzenete segítségével vaku.

A lekérdezést át is adhatja a JavaScript jQuery -jének, hogy ellenőrizze a bemeneteket és aszinkron módon ellenőrizze az ismétlődéseket.

A CouchDB jobb, mint az SQL adatbázisok?

A CouchDB vagy bármely más NoSQL adatbázis Flask vagy más programozási technológia használata az Ön preferenciáitól függ. De jól jön, ha strukturálatlan adatokkal és nyers adathordozókkal foglalkozunk.

Ennek ellenére, mielőtt döntene, érdemes megnézni a NoSQL és az SQL adatbázisok közötti különbségeket, hogy segítsen eldönteni, hogy melyik alkalmas a projektre.

RészvényCsipogEmail
SQL vs. NoSQL: Mi a legjobb adatbázis a következő projekthez?

Az adatbázis típusának kiválasztása bonyolult lehet. SQL -t vagy NoSQL -t válasszon?

Olvassa tovább

Kapcsolódó témák
  • Programozás
  • adatbázis
  • Programozás
  • Kódolási oktatóanyagok
A szerzőről
Idowu Omisola (94 cikk megjelent)

Idowu szenvedélyes minden intelligens technológia és termelékenység iránt. Szabadidejében kódolással játszik, és ha unatkozik, sakktáblára vált, de szeret időnként elszakadni a rutintól. Szenvedélye, hogy megmutassa az embereknek a modern technológia körüli utat, arra ösztönzi, hogy többet írjon.

Továbbiak Idowu Omisola -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide