Povezivanje Flaska s SQL bazama podataka poput PostgreSQL i SQLite jednostavno je. No, okvir se savršeno sinkronizira s NoSQL bazama podataka poput CouchDB -a. I kao dodatna prednost, možete jednostavno zatražiti podatke kada koristite CouchDB s Flaskom.

Jeste li spremni za promjenu korištenjem NoSQL -a poput CouchDB -a s aplikacijom Flask? Evo kako postaviti CouchDB na vaš lokalni stroj i povezati ga s Flaskom.

Što je CouchDB?

CouchDB je NoSQL baza podataka koja je trenutno u vlasništvu Apache Software Foundation. Napisan s Erlangom, softver je prvi put objavljen 2005.

Za razliku od uobičajenih baza podataka povezanih s tablicama na koje ste najvjerojatnije navikli, CouchDB je nerelacijski sustav za upravljanje bazama podataka koji pohranjuje podatke kao neobrađeni JSON.

CouchDB ne blokira, pa ne zaključava bazu podataka tijekom unosa podataka. Jedna od jačih strana CouchDB-a je to što za čitanje i pisanje podataka koristi politiku kontrole istodobnosti u više verzija. Tako dopušta istovremene unose od više korisnika bez smetnji u postojeću strukturu podataka u bazi podataka.

instagram viewer

Dakle, CouchDB je brz tijekom upita i s njim je lako raditi dok se koriste asinkrone metode. Međutim, to ga ne čini ništa boljim od svog SQL partnera. Svaka tehnologija ima svoje prednosti i nedostatke.

Postavljanje CouchDB -a

Da biste počeli koristiti CouchDB, preuzmite i instalirajte kompatibilnu verziju s Službena web stranica CouchDB -a.

A ako vam najnovija verzija ne radi, prijeđite na Arhiva CouchDB i preuzeti verziju 1.6.1, koja je ranija verzija CouchDB -a.

Nakon što instalirate CouchDB, pokrenite ga na računalu kao i bilo koju drugu aplikaciju za stolna računala.

Otvorite svoj preglednik. Zatim pokrenite poslužitelj CouchDB lijepljenjem sljedećeg u svoju adresnu traku:

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

Postavite Python i Flask

Ovaj vodič, međutim, pretpostavlja da već imate instaliran Python na računalu. U suprotnom, idite na python.org i instalirajte najnoviju verziju Pythona na svoje računalo.

Nakon što postavite CouchDB, izradite korijensku mapu projekta. Zatim otvorite svoj naredbeni redak u tom direktoriju i stvorite Python virtualno okruženje.

Instalirajte najnoviju verziju Flaska u virtualni prostor pomoću pip:

pip install flask

Spojite bočicu s CouchDB -om

Da biste počeli koristiti CouchDB s aplikacijom Flask, instalirajte Bočica-kaučDB, runtime paket za povezivanje baze podataka s Flaskom.

Uraditi ovo:

pip install Flask-CouchDB

Nakon što instalirate Bočica-kaučDB uspješno, stvorite app.py datoteku u toj korijenskoj mapi. Slično, stvorite database.py file - ovo upravlja stvaranjem vaše baze podataka.

Otvoren database.py i uvezite sljedeće pakete:

s poslužitelja za uvoz couchdb

Zatim stvorite svoju bazu podataka u istoj datoteci pomoću sljedećeg bloka koda:

s poslužitelja za uvoz couchdb
poslužitelj = poslužitelj ()
db = server.create ('muocouch')

Izvršiti database.py putem CLI -ja. Zatim otvorite ili osvježite lokalni poslužitelj CouchDB -a putem preglednika kao i ranije. Sada biste trebali vidjeti bazu podataka (muocouch u ovom slučaju) navedene u CouchDB.

Povezano:Kako pokrenuti Python skriptu

Bilješka: Uvjerite se da za baze podataka koristite konvenciju imenovanja malih slova jer CouchDB možda neće prihvatiti velika ili mješovita slova.

Pohranite svoje prve podatke iz CouchDB -a pomoću bočice

U konačnici, svrha svake baze podataka je pohrana podataka. Nakon što imate bazu podataka u CouchDB -u, možete odmah početi pohranjivati ​​podatke u nju iz svoje aplikacije Flask.

Za početak otvorite app.py i uvezite sljedeće pakete:

iz tikvice uvoz Flask
s poslužitelja za uvoz couchdb
iz flaskext.couchdb uvozni dokument

Zatim stvorite aplikaciju Flask i instancu poslužitelja CouchDB:

app = Flask (__name__, static_url_path = '/static')
app.debug = Istina
poslužitelj = poslužitelj ()

Sada pohranimo neke korisničke unose u CouchDB:

@app.route ('/', methods = ['GET', 'POST'])
def register ():
korisnik = {
"korisničko ime": "medijsko mjesto",
"email": "[email protected]",
"lozinka": "šifrirani podaci"
}
db = server ['muocouch'] #izbor baze podataka
doc_id, doc_rev = db.save (user) #pohranite svoje podatke u bazu podataka
povratak "

Vaši bi se podaci sada trebali nalaziti u bazi podataka

"

Ako želite, možete postaviti svoj Flask poslužitelj u razvojni način prije nego što ga pokrenete.

Da biste to učinili, pokrenite sljedeću naredbu putem CLI -ja:

set FLASK_ENV = razvoj

Imajte na umu da postavljanje načina poslužitelja nije obavezno. To samo olakšava ispravljanje pogrešaka u vašem kodu.

No, bez obzira na postavku načina poslužitelja, evo kako pokrenuti Flask poslužitelj putem CMD -a:

pokretanje tikvice

Flask, prema zadanim postavkama, vaš port localhost: 5000. Sada biste trebali vidjeti poruku u H2 oznaku nakon što učitate ovu adresu putem preglednika.

Provjerite podatke i provjerite duplikate pomoću CouchDB upita

Da biste to dodatno standardizirali, možete koristiti upite za provjeru unosa i sprječavanje duplikata u vašoj bazi podataka. Upiti CouchDB su malo drugačiji od načina na koji to radite sa SQL bazama podataka.

CouchDB koristi ono što naziva "JavaScript pogledima" za upite podataka iz baze podataka. Srećom, ovo je relativno jednostavno.

Prije nego što nastavite dalje, evo kako izgleda osnovni prikaz upita CouchDB:

map_func = funkcija (doc) 
{emitirati (doc.doc_rev, doc); }
myQuery = [docType] .query (db, map_func, reduce_fun = Ništa)

Koristimo sada gornji kod praktično:

#Stvorite objektni model dokumenta pod nazivom "Korisnici:"
korisnik klase (dokument):
doc_type = 'Korisnik'
@app.route ('/', methods = ['GET', 'POST'])
def register ():
korisnik = {
"korisničko ime": "medijsko mjesto",
"email": "[email protected]",
"lozinka": "šifrirani podaci"
}
db = server ['muocouch'] #izbor baze podataka
# Koristite funkciju prikaza za dohvaćanje podataka s CouchDB -a
map_func = funkcija (doc)
{emitirati (doc.doc_rev, doc); }
# Dobijte sve podatke pokretanjem skupa upita
myQuery = User.query (db, map_func, reduce_fun = Nema, obrnuto = Istina)
q = [i ['korisničko ime'] za i u myQuery] # Poništite sva korisnička imena iz baze podataka
q2 = [i ['email'] za i u myQuery] # Poništite sve adrese e -pošte iz baze podataka
q3 = q+q2 # Spojite oba upita u jedan popis
ispis (q3)
povratak "

Vaši su podaci sada u bazi podataka

"

Gornji kôd koristi Korisnik klase za upite podataka dohvaćenih funkcijom prikaza. Obratite posebnu pozornost na parametre unutar skupa upita (myQuery).

Tiskanje q3, kao što ste učinili gore, sada bi trebao ispisati sva korisnička imena i adrese e -pošte u bazi podataka unutar naredbenog retka.

Evo kako možete koristiti ovaj upit za provjeru unosa korisnika:

ako nije (korisnik ['korisničko ime'] u trećem tromjesečju ili korisnik ['e -pošta'] u trećem tromjesečju):
#pohranite svoje podatke u bazu podataka ako ne postoje
doc_id, doc_rev = db.save (korisnik)
povratak "

Uspješno registriran

"
drugo:
povratak "

Korisničko ime ili adresa e -pošte postoji

"

Osvježavanje preglednika vraća datoteku drugo svaki put kada pokušate unijeti korisničko ime ili e -poruku koja se već nalazi u bazi podataka. A ako unosite novu, ona uspješno pohranjuje vaše podatke izvršavanjem datoteke ako stanje.

Povezano:Kako koristiti Python if izjavu

To je to! Upravo ste stvorili svoju prvu NoSQL bazu podataka koristeći Flask-CouchDB.

Iako se stvaranje i ispitivanje baza podataka u CouchDB -u vrti oko primjera koje smo ovdje istaknuli, Flaskove funkcionalnosti možete dodatno istražiti. Na primjer, polja za unos možete okrenuti pomoću wtforms i označite duplikate pomoću Flaskove poruke bljesak.

Možete čak proslijediti svoj upit u JavaScript -ov jQuery radi provjere unosa i asinkrone provjere duplikata.

Je li CouchDB bolji od SQL baza podataka?

Korištenje CouchDB -a ili bilo koje druge baze podataka NoSQL s Flaskom ili bilo kojom drugom tehnologijom programiranja ovisi o vašim željama. No, dobro nam dođe kada se bavite podacima bez strukture i sirovim medijima.

Međutim, prije nego što se odlučite, možda biste htjeli pogledati razlike između NoSQL i SQL baza podataka kako biste lakše odlučili koja je od njih prikladna za vaš projekt.

UdioCvrkutE -pošta
SQL vs. NoSQL: Koja je najbolja baza podataka za vaš sljedeći projekt?

Odabir vrste baze podataka može biti težak. Trebate li odabrati SQL ili NoSQL?

Pročitajte Dalje

Povezane teme
  • Programiranje
  • baza podataka
  • Programiranje
  • Vodiči za kodiranje
O autoru
Idowu Omisola (94 objavljena članka)

Idowu je strastven u bilo čemu pametnom tehnologiji i produktivnosti. U slobodno vrijeme igra se kodiranjem i prebacuje na šahovsku ploču kad mu je dosadno, ali također voli povremeno odustati od rutine. Njegova strast prema pokazivanju ljudi suvremene tehnologije motivira ga da piše više.

Više od Idowua Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu