Povezovanje Flaska z bazami podatkov SQL, kot sta PostgreSQL in SQLite, je preprosto. Toda okvir se odlično sinhronizira tudi z bazami podatkov NoSQL, kot je CouchDB. Kot dodatno prednost lahko preprosto poiščete svoje podatke, če uporabljate CouchDB s Flaskom.

Ste pripravljeni na spremembo z uporabo NoSQL, kot je CouchDB, v aplikaciji Flask? Takole lahko nastavite CouchDB na svojem lokalnem računalniku in ga povežete s Flaskom.

Kaj je CouchDB?

CouchDB je baza podatkov NoSQL, ki je trenutno v lasti Apache Software Foundation. Programska oprema, napisana z Erlangom, je bila prvič izdana leta 2005.

Za razliko od običajnih baz podatkov, povezanih s tabelami, na katere ste najverjetneje vajeni, je CouchDB nerelacijski sistem za upravljanje baz podatkov, ki podatke shranjuje kot surovi JSON.

CouchDB ne blokira, zato med vnosom podatkov ne zaklene baze podatkov. Ena od močnih točk CouchDB je, da za branje in pisanje podatkov uporablja politiko sočasnega nadzora v več različicah. Tako omogoča hkratne vnose več uporabnikov brez vmešavanja v obstoječo strukturo podatkov v zbirki podatkov.

instagram viewer

Tako je CouchDB hiter med poizvedbami in z njim je enostavno delati med uporabo asinhronih metod. Vendar pa s tem ni nič boljši od svojega kolega SQL. Vsaka tehnologija ima svoje prednosti in slabosti.

Nastavitev CouchDB

Če želite začeti uporabljati CouchDB, prenesite in namestite združljivo različico iz Uradna spletna stran CouchDB.

Če vam najnovejša različica ne deluje, nadaljujte z Arhiv CouchDB in prenesite različico 1.6.1, ki je starejša različica CouchDB.

Ko namestite CouchDB, ga zaženite v računalniku, tako kot katero koli drugo namizno aplikacijo.

Odprite brskalnik. Nato zaženite strežnik CouchDB tako, da v naslovno vrstico prilepite naslednje:

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

Nastavite Python in Flask

Ta vadnica pa predvideva, da imate v računalniku že nameščen Python. V nasprotnem primeru pojdite na python.org in v računalnik namestite najnovejšo različico programa Python.

Ko nastavite CouchDB, ustvarite korensko mapo projekta. Nato odprite ukazno vrstico v tem imeniku in ustvarite datoteko Navidezno okolje Python.

Najnovejšo različico programa Flask namestite v navidezni prostor z uporabo pip:

pip namestite bučko

Povežite steklenico s CouchDB

Če želite začeti uporabljati CouchDB z aplikacijo Flask, namestite Flask-CouchDB, izvajalni paket za povezovanje zbirke podatkov s Flaskom.

Storiti to:

pip install Flask-CouchDB

Ko namestite Flask-CouchDB uspešno ustvarite app.py datoteko v tej korenski mapi. Podobno ustvarite datoteko database.py file - to upravlja ustvarjanje vaše baze podatkov.

Odprto database.py in uvozite naslednje pakete:

iz uvoznega strežnika couchdb

Nato ustvarite svojo bazo podatkov v isti datoteki z naslednjim blokom kode:

iz uvoznega strežnika couchdb
strežnik = strežnik ()
db = server.create ('muocouch')

Izvedite database.py prek CLI. Nato odprite ali osvežite lokalni strežnik CouchDB prek brskalnika, kot ste to storili prej. Zdaj bi morali videti bazo podatkov (muocouch v tem primeru) navedena v CouchDB.

Povezano:Kako zagnati skript Python

Opomba: Prepričajte se, da za baze podatkov uporabljate konvencijo poimenovanja malih črk, saj CouchDB morda ne sprejema velikih ali mešanih črk.

Shranite svoje prve podatke CouchDB s pomočjo steklenice

Navsezadnje je namen katere koli baze podatkov shranjevanje podatkov. Ko imate zbirko podatkov v CouchDB, lahko takoj začnete shranjevati podatke vanjo iz aplikacije Flask.

Za začetek odprite app.py in uvozite naslednje pakete:

iz bučke uvoz steklenice
iz uvoznega strežnika couchdb
iz flaskext.couchdb uvoznega dokumenta

Nato ustvarite aplikacijo Flask in primerek strežnika CouchDB:

app = Flask (__name__, static_url_path = '/static')
app.debug = Res
strežnik = strežnik ()

Zdaj pa shranimo nekaj vnosov uporabnikov v CouchDB:

@app.route ('/', methods = ['GET', 'POST'])
def register ():
uporabnik = {
"username": "medijsko mesto",
"email": "[email protected]",
"password": "encrypteddata"
}
db = server ['muocouch'] #izberi bazo podatkov
doc_id, doc_rev = db.save (user) #shranite svoje podatke v bazo podatkov
vrnitev "

Vaši podatki bi morali biti zdaj v bazi podatkov

"

Če želite, lahko strežnik Flask nastavite na razvojni način, preden ga zaženete.

Če želite to narediti, v CLI zaženite naslednji ukaz:

set FLASK_ENV = razvoj

Upoštevajte, da nastavitev strežniškega načina ni obvezna. Odpravljanje napak v vaši kodi je enostavno.

Toda ne glede na nastavitev načina strežnika, zaženite strežnik Flask prek CMD tako:

zagon bučke

Flask pa privzeto določa vaša vrata localhost: 5000. Zdaj bi morali videti sporočilo v H2 oznako, ko ta naslov naložite prek brskalnika.

Preverjanje podatkov in preverjanje dvojnikov z uporabo poizvedb CouchDB

Če želite to še bolj standardizirati, lahko z poizvedbami potrdite vnose in preprečite podvojevanje v zbirki podatkov. Poizvedovanje po CouchDB se nekoliko razlikuje od tega, kako to počnete z bazami podatkov SQL.

CouchDB za poizvedovanje po podatkih iz baze podatkov uporablja tisto, kar imenuje "pogledi JavaScript". Na srečo je to razmeroma preprosto.

Preden nadaljujete, izgleda osnovni pogled poizvedbe CouchDB:

map_func = funkcija (doc) 
{oddati (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, reduce_fun = Brez)

Zdaj uporabimo zgornjo kodo praktično:

#Ustvarite objektni model dokumenta z imenom "Uporabniki:"
uporabnik razreda (dokument):
doc_type = 'Uporabnik'
@app.route ('/', methods = ['GET', 'POST'])
def register ():
uporabnik = {
"username": "medijsko mesto",
"email": "[email protected]",
"password": "encrypteddata"
}
db = server ['muocouch'] #izberi bazo podatkov
# Uporabite funkcijo pogleda za pridobivanje podatkov iz CouchDB
map_func = funkcija (doc)
{oddati (doc.doc_rev, doc); }
# Pridobite vse podatke z izvajanjem nabora poizvedb
myQuery = User.query (db, map_func, reduce_fun = Brez, obratno = True)
q = [i ['username'] za i v myQuery] # Izključite vsa uporabniška imena iz baze podatkov
q2 = [i ['email'] za i v myQuery] # Izločite vse e -poštne naslove iz baze podatkov
q3 = q+q2 # Združite obe poizvedbi v en sam seznam
tisk (q3)
vrnitev "

Vaši podatki so zdaj v bazi podatkov

"

Zgornja koda uporablja Uporabnik razred za poizvedovanje po podatkih, ki jih pridobi funkcija view. Bodite pozorni na parametre v nizu poizvedb (myQuery).

Tiskanje q3, kot ste to storili zgoraj, bi zdaj morala prikazati vsa uporabniška imena in e -poštne naslove v zbirki podatkov v ukazni vrstici.

Torej, kako lahko uporabite to poizvedbo za preverjanje vnosov uporabnikov:

če ne (uporabnik ['username'] v tretjem četrtletju ali uporabnik ['email'] v tretjem četrtletju):
#shranite svoje podatke v bazo podatkov, če ne obstajajo
doc_id, doc_rev = db.save (uporabnik)
vrnitev "

Uspešno registriran

"
drugače:
vrnitev "

Uporabniško ime ali e -poštni naslov obstaja

"

Če osvežite brskalnik, se vrne drugače vsakič, ko poskušate vnesti uporabniško ime ali e -poštno sporočilo, ki je že v bazi podatkov. Če vnesete novega, bo uspešno shranil vaše podatke z izvajanjem datoteke če stanje.

Povezano:Kako uporabiti izjavo Python if

To je to! Pravkar ste ustvarili svojo prvo bazo podatkov NoSQL z uporabo Flask-CouchDB.

Čeprav se ustvarjanje in poizvedovanje v podatkovnih zbirkah v CouchDB vrti okoli primerov, ki smo jih tukaj poudarili, lahko funkcije Flask še dodatno poiščete. Vnosna polja lahko na primer zasukate z uporabo wtforms in označite dvojnike z uporabo sporočila Flask bliskavico.

Poizvedbo lahko celo posredujete v jQuery JavaScript za preverjanje vnosov in asinhrono preverjanje dvojnikov.

Je CouchDB boljši od baz podatkov SQL?

Uporaba CouchDB ali katere koli druge baze podatkov NoSQL s Flaskom ali katero koli drugo programsko tehnologijo je odvisna od vaših želja. Vendar pa pride prav pri obravnavi nestrukturiranih podatkov in surovih medijev.

Preden se odločite, boste morda želeli pogledati razlike med bazami podatkov NoSQL in SQL, da se boste lažje odločili, katera od njih je primerna za vaš projekt.

DelitiCvrkutatiE-naslov
SQL vs. NoSQL: Katera je najboljša zbirka podatkov za vaš naslednji projekt?

Izbira vrste zbirke podatkov je lahko težavna. Bi morali izbrati SQL ali NoSQL?

Preberite Naprej

Sorodne teme
  • Programiranje
  • zbirko podatkov
  • Programiranje
  • Vadnice za kodiranje
O avtorju
Idowu Omisola (94 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se igra s kodiranjem in se, ko mu je dolgčas, preklopi na šahovsko tablo, rad pa se občasno tudi odmika od rutine. Njegova strast, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti