Conectarea Flask cu baze de date SQL, cum ar fi PostgreSQL și SQLite, este foarte simplă. Dar cadrul se sincronizează perfect cu bazele de date NoSQL precum CouchDB. Și ca un avantaj suplimentar, vă puteți interoga datele cu ușurință atunci când utilizați CouchDB cu Flask.

Sunteți gata să faceți o schimbare utilizând un NoSQL precum CouchDB cu aplicația dvs. Flask? Iată cum să configurați CouchDB pe mașina dvs. locală și să îl conectați cu Flask.

Ce este CouchDB?

CouchDB este o bază de date NoSQL deținută în prezent de Apache Software Foundation. Scris cu Erlang, software-ul a fost lansat pentru prima dată în 2005.

Spre deosebire de bazele de date obișnuite legate de tabel cu care sunteți cel mai probabil obișnuiți, CouchDB este un sistem de gestionare a bazelor de date nerelacționale care stochează date ca JSON brut.

CouchDB nu este blocant, deci nu blochează baza de date în timpul introducerii datelor. Unul dintre punctele forte ale CouchDB este că folosește o politică de control al concurenței în mai multe versiuni pentru a citi și scrie date. Deci, permite intrări simultane de la mai mulți utilizatori fără interferențe din structura existentă a datelor din baza de date.

instagram viewer

Astfel, CouchDB este rapid în timpul interogărilor și ușor de lucrat cu ajutorul metodelor asincrone. Acestea fiind spuse, acest lucru nu îl face mai bun decât omologul său SQL. Fiecare tehnologie are avantajele și dezavantajele sale.

Configurare CouchDB

Pentru a începe să utilizați CouchDB, descărcați și instalați o versiune compatibilă de la Site-ul oficial al CouchDB.

Și dacă ultima versiune nu funcționează pentru dvs., treceți la Arhiva CouchDB și descărcați versiunea 1.6.1, care este o versiune anterioară a CouchDB.

Odată ce ați instalat CouchDB, rulați-l pe computer, așa cum ați face cu orice altă aplicație desktop.

Deschideți browserul. Apoi lansați serverul CouchDB lipind următoarele în bara de adrese:

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

Configurați Python și Flask

Totuși, acest tutorial presupune că aveți deja Python instalat pe computer. În caz contrar, mergeți la python.org și instalați cea mai recentă versiune de Python pe computer.

După ce configurați CouchDB, creați un folder rădăcină al proiectului. Apoi deschideți linia de comandă în acel director și creați un Mediu virtual Python.

Instalați cea mai recentă versiune de Flask în spațiul virtual folosind pip:

pip instala balon

Conectați balonul cu CouchDB

Pentru a începe să utilizați CouchDB cu aplicația dvs. Flask, instalați Flask-CouchDB, pachetul de execuție pentru conectarea bazei de date cu Flask.

Pentru a face acest lucru:

pip instala Flask-CouchDB

Odată ce ați instalat Flask-CouchDB cu succes, creați un app.py în acel folder rădăcină. În mod similar, creați un database.py fișier - aceasta gestionează crearea bazei de date.

Deschis database.py și importați următoarele pachete:

de pe couchdb import Server

Apoi, creați baza de date în același fișier folosind următorul bloc de cod:

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

A executa database.py prin CLI. Apoi deschideți sau reîmprospătați serverul local CouchDB prin browserul dvs., așa cum ați făcut mai devreme. Acum ar trebui să vedeți baza de date (muocouch în acest caz) listate în CouchDB.

Legate de:Cum se execută un script Python

Notă: Asigurați-vă că utilizați o convenție de denumire minusculă pentru baze de date, deoarece CouchDB ar putea să nu accepte majuscule sau minuscule.

Stocați primele date CouchDB folosind Flask

În cele din urmă, scopul oricărei baze de date este stocarea datelor. După ce aveți o bază de date în CouchDB, puteți începe să stocați date în ea din aplicația dvs. Flask imediat.

Pentru a începe, deschideți app.py și importați următoarele pachete:

din flacon import Flacon
de pe couchdb import Server
din flaskext.couchdb import Document

Apoi, creați o aplicație Flask și o instanță de server CouchDB:

app = Flask (__name__, static_url_path = '/ static')
app.debug = Adevărat
server = Server ()

Acum să stocăm câteva intrări de utilizator în CouchDB:

@ app.route ('/', methods = ['GET', 'POST'])
def register ():
utilizator = {
"username": "site media",
„e-mail”: „[email protected]”,
"password": "encrypteddata"
}
db = server ['muocouch'] #selectează baza de date
doc_id, doc_rev = db.save (user) #store your data in th database
întoarcere "

Datele dvs. ar trebui să fie acum în baza de date

"

Dacă doriți, puteți seta serverul Flask la modul de dezvoltare înainte de al rula.

Pentru aceasta, rulați următoarea comandă prin CLI:

set FLASK_ENV = dezvoltare

Rețineți că setarea modului server este opțională. Face doar depanarea codului fără probleme.

Dar, indiferent de setarea modului de server, iată cum să porniți serverul Flask prin CMD:

balon rulat

Cu toate acestea, Flask implică portul localhost: 5000. Acum ar trebui să vedeți mesajul în H2 etichetați odată ce încărcați această adresă prin browser.

Validați datele și verificați duplicatele folosind interogările CouchDB

Pentru a standardiza acest lucru în continuare, puteți utiliza interogări pentru a valida intrările și a preveni duplicatele din baza de date. Interogarea CouchDB este puțin diferită de modul în care faceți acest lucru cu bazele de date SQL.

CouchDB folosește ceea ce numește „vizualizări JavaScript” pentru a interoga date din baza de date. Din fericire, acest lucru este relativ simplu.

Înainte de a progresa mai departe, iată cum arată o vizualizare de bază a interogării CouchDB:

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

Acum să folosim practic codul de mai sus:

#Creați un model de obiect document numit „Utilizatori:"
clasă Utilizator (Document):
doc_type = 'Utilizator'
@ app.route ('/', methods = ['GET', 'POST'])
def register ():
utilizator = {
"username": "site media",
„e-mail”: „[email protected]”,
"password": "encrypteddata"
}
db = server ['muocouch'] #selectează baza de date
# Utilizați funcția de vizualizare pentru a prelua datele de la CouchDB
map_func = funcție (doc)
{emit (doc.doc_rev, doc); }
# Obțineți toate datele rulând un set de interogări
myQuery = User.query (db, map_func, reduce_fun = None, reverse = True)
q = [i ['username'] for i in myQuery] # Buclă toate numele de utilizator din baza de date
q2 = [i ['email'] for i in myQuery] # Buclă toate adresele de e-mail din baza de date
q3 = q + q2 # Îmbinați ambele interogări într-o singură listă
print (q3)
întoarcere "

Datele dvs. sunt acum în baza de date

"

Codul de mai sus folosește Utilizator pentru a interoga datele preluate de funcția de vizualizare. Acordați o atenție deosebită parametrilor din setul de interogări (Întrebarea mea).

Tipărire q3, așa cum ați făcut mai sus, ar trebui să afișeze acum toate numele de utilizator și adresele de e-mail din baza de date din linia de comandă.

Deci, iată cum puteți utiliza această interogare pentru a valida intrările utilizatorilor:

dacă nu (utilizator ['username'] în q3 sau utilizator ['email'] în q3):
#stocați datele în baza de date dacă nu există
doc_id, doc_rev = db.save (utilizator)
întoarcere "

Inregistrare Reusita

"
altceva:
întoarcere "

Numele de utilizator sau adresa de e-mail există

"

Reîmprospătarea browserului returnează fișierul altceva de fiecare dată când încercați să introduceți un nume de utilizator sau un e-mail care este deja în baza de date. Și dacă introduceți unul nou, acesta vă stochează cu succes datele executând dacă condiție.

Legate de:Cum se folosește declarația Python if

Asta e! Tocmai ați creat prima dvs. bază de date NoSQL folosind Flask-CouchDB.

Deși crearea și interogarea bazelor de date în CouchDB se învârte în jurul exemplelor pe care le-am evidențiat aici, puteți urmări funcționalitățile Flask în continuare. De exemplu, puteți roti câmpurile de intrare folosind wtforms și semnalizați duplicatele folosind mesajul Flask flash.

Puteți chiar să transmiteți interogarea către jQuery JavaScript pentru a valida intrările și a verifica duplicatele în mod asincron.

CouchDB este mai bun decât bazele de date SQL?

Utilizarea CouchDB sau orice altă bază de date NoSQL cu Flask sau orice altă tehnologie de programare depinde de preferințele dvs. Dar vine la îndemână atunci când se ocupă de date fără structură și media brute.

Acestea fiind spuse, înainte de a vă decide, este posibil să doriți să examinați diferențele dintre bazele de date NoSQL și SQL pentru a vă ajuta să decideți care dintre ele este potrivită pentru proiectul dvs.

AcțiuneTweetE-mail
SQL vs. NoSQL: Care este cea mai bună bază de date pentru următorul dvs. proiect?

Alegerea unui tip de bază de date poate fi dificilă. Ar trebui să alegeți SQL sau NoSQL?

Citiți în continuare

Subiecte asemănătoare
  • Programare
  • Bază de date
  • Programare
  • Tutoriale de codificare
Despre autor
Idowu Omisola (94 articole publicate)

Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place, de asemenea, să se rupă de rutină din când în când. Pasiunea sa pentru a arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai multe.

Mai multe de la Idowu Omisola

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona