Cum să vă conectați aplicația Flask cu CouchDB: o bază de date NoSQL

Cum să vă conectați aplicația Flask cu CouchDB: o bază de date NoSQL

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.



Astfel, CouchDB este rapid în timpul interogărilor și este 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 instalați 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 instalat Python pe computer. În caz contrar, mergeți la python.org și instalați cea mai recentă versiune de Python pe computer.

Odată ce ați configurat 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 :

cum se schimbă locația de rezervă Windows 10
pip install flask

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

from couchdb import Server

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

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

from flask import Flask
from couchdb import Server
from 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=True
server = Server()

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

@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

'

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

Pentru a face acest lucru, rulați următoarea comandă prin CLI:

set FLASK_ENV=development

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:

flask run

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 interogare de bază CouchDB:

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

Acum să folosim practic codul de mai sus:

#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

'

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:

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

'

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 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ă treceț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ă în timp ce 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țiune Acțiune Tweet E-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 codare
Despre autor Idisou 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