Com connectar la vostra aplicació Flask amb CouchDB: una base de dades NoSQL

Com connectar la vostra aplicació Flask amb CouchDB: una base de dades NoSQL

Connectar Flask amb bases de dades SQL com PostgreSQL i SQLite és molt senzill. Però el framework se sincronitza perfectament amb bases de dades NoSQL com CouchDB, també. I com a avantatge addicional, podeu consultar les vostres dades fàcilment quan utilitzeu CouchDB amb Flask.





Esteu a punt per fer un canvi mitjançant un NoSQL com CouchDB amb la vostra aplicació Flask? A continuació s’explica com configurar CouchDB al vostre equip local i connectar-lo amb Flask.





Què és CouchDB?

CouchDB és una base de dades NoSQL propietat actual de l’Apache Software Foundation. Escrit amb Erlang, el programari es va llançar per primera vegada el 2005.





A diferència de les bases de dades vinculades a taules habituals amb les quals és més probable que estigueu acostumat, CouchDB és un sistema de gestió de bases de dades no relacional que emmagatzema dades com a JSON en brut.

CouchDB no bloqueja, de manera que no bloqueja la base de dades durant l’entrada de dades. Un dels punts forts de CouchDB és que utilitza una política de control de simultaneïtat de versions múltiples per llegir i escriure dades. Per tant, permet l'entrada simultània de diversos usuaris sense interferències de l'estructura existent de les dades a la base de dades.



Per tant, CouchDB és ràpid durant les consultes i fàcil de treballar mentre s’utilitzen mètodes asíncrons. Dit això, això no el fa millor que el seu homòleg SQL. Cada tecnologia té els seus pros i els seus contres.

Configuració de CouchDB

Per començar a utilitzar CouchDB, descarregueu i instal·leu una versió compatible des de Lloc web oficial de CouchDB .





I si aquesta versió més recent no us funciona, aneu a Arxiu CouchDB i descarregueu la versió 1.6.1, que és una versió anterior de CouchDB.

Un cop instal·leu CouchDB, executeu-lo al vostre PC com ho faríeu amb qualsevol altra aplicació d'escriptori.





Obriu el navegador. A continuació, inicieu el servidor de CouchDB enganxant el següent a la barra d'adreces:

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

Configureu Python i Flask

Aquest tutorial, però, suposa que ja teniu instal·lat Python al vostre PC. En cas contrari, aneu a python.org i instal·leu l'última versió de Python al vostre PC.

Un cop hàgiu configurat CouchDB, creeu una carpeta arrel del projecte. A continuació, obriu la línia d'ordres a aquest directori i creeu un fitxer Entorn virtual Python .

Instal·leu l'última versió de Flask a l'espai virtual mitjançant pip :

pots veure els teus subscriptors a youtube?
pip install flask

Connecteu Flask amb CouchDB

Per començar a utilitzar CouchDB amb la vostra aplicació Flask, instal·leu-la Flask-CouchDB , el paquet d'execució per connectar la base de dades amb Flask.

Fer això:

pip install Flask-CouchDB

Un cop instal·lat Flask-CouchDB amb èxit, creeu un fitxer app.py en aquesta carpeta arrel. De la mateixa manera, creeu un fitxer database.py file: gestiona la creació de la vostra base de dades.

Obert database.py i importeu els paquets següents:

from couchdb import Server

A continuació, creeu la vostra base de dades en aquest mateix fitxer mitjançant el següent bloc de codi:

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

Executar database.py mitjançant la CLI. A continuació, obriu o actualitzeu el servidor local de CouchDB a través del navegador tal com ho feieu anteriorment. Ara hauríeu de veure la base de dades ( muocouch en aquest cas) que apareixen a CouchDB.

Relacionat: Com executar un script Python

Nota: Assegureu-vos que utilitzeu una convenció de noms de minúscules per a bases de dades, ja que és possible que CouchDB no accepti majúscules o majúscules.

Emmagatzemeu les primeres dades de CouchDB amb Flask

En definitiva, l’objectiu de qualsevol base de dades és l’emmagatzematge de dades. Un cop tingueu una base de dades a CouchDB, podeu començar a emmagatzemar-hi dades des de la vostra aplicació Flask immediatament.

Per començar, obriu app.py i importeu els paquets següents:

from flask import Flask
from couchdb import Server
from flaskext.couchdb import Document

A continuació, creeu una aplicació Flask i una instància de servidor CouchDB:

app = Flask(__name__, static_url_path='/static')
app.debug=True
server = Server()

Ara anem a emmagatzemar algunes entrades d'usuari a 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

'

Si voleu, podeu configurar el servidor Flask al mode de desenvolupament abans d’executar-lo.

Per fer-ho, executeu l'ordre següent mitjançant la vostra CLI:

set FLASK_ENV=development

Tingueu en compte que configurar el mode de servidor és opcional. Només fa que la depuració del codi sigui senzilla.

Però, independentment de la configuració del mode de servidor, a continuació s’explica com iniciar el servidor Flask mitjançant el CMD:

flask run

Flask, però, és el vostre port per defecte localhost: 5000 . Ara hauríeu de veure el missatge a H2 etiqueta un cop carregueu aquesta adreça mitjançant el navegador.

Valideu les dades i comproveu els duplicats mitjançant consultes CouchDB

Per estandarditzar això, podeu utilitzar consultes per validar les entrades i evitar duplicats a la vostra base de dades. Consultar CouchDB és una mica diferent de com ho feu amb les bases de dades SQL.

CouchDB utilitza el que anomena 'visualitzacions JavaScript' per consultar dades de la base de dades. Afortunadament, això és relativament senzill.

Abans de continuar avançant, a continuació s’explica l’aspecte d’una vista bàsica de consultes de CouchDB:

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

Ara fem servir pràcticament el codi anterior:

#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

'

El codi anterior utilitza el fitxer Usuari classe per consultar les dades obtingudes per la funció de visualització. Presteu molta atenció als paràmetres del conjunt de consultes ( myQuery ).

Impressió q3 Com heu fet anteriorment, ara hauríeu de publicar tots els noms d’usuari i adreces de correu electrònic de la base de dades dins de la línia d’ordres.

Així doncs, us expliquem com podeu utilitzar aquesta consulta per validar les entrades dels usuaris:

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

'

Si actualitzeu el navegador, es torna el fitxer en cas contrari declaració cada vegada que proveu d'introduir un nom d'usuari o un correu electrònic que ja està a la base de dades. I si n'introduïu un de nou, s'emmagatzemen les vostres dades amb èxit executant el fitxer si condició.

Relacionat: Com utilitzar la instrucció Python if

Això és! Acabeu de crear la vostra primera base de dades NoSQL amb Flask-CouchDB.

Tot i que la creació i consulta de bases de dades a CouchDB gira entorn dels exemples que hem ressaltat aquí, podeu explorar encara més les funcionalitats de Flask. Per exemple, podeu fer girar els camps d'entrada mitjançant wtforms i marca els duplicats mitjançant el missatge de Flask flaix .

Fins i tot podeu passar la vostra consulta a jQuery de JavaScript per validar les entrades i comprovar els duplicats de manera asíncrona.

CouchDB és millor que les bases de dades SQL?

L'ús de CouchDB o qualsevol altra base de dades NoSQL amb Flask o qualsevol altra tecnologia de programació depèn de les vostres preferències. Però resulta útil quan es tracta de dades sense estructures i suports en brut.

Dit això, abans de decidir-vos, potser voldreu veure les diferències entre les bases de dades NoSQL i SQL per ajudar-vos a decidir quina d'elles és adequada per al vostre projecte.

Compartir Compartir Tweet Correu electrònic SQL vs. NoSQL: quina és la millor base de dades per al vostre proper projecte?

Triar un tipus de base de dades pot ser complicat. Heu de triar SQL o NoSQL?

Llegiu a continuació
Temes relacionats
  • Programació
  • base de dades
  • Programació
  • Tutorials de codificació
Sobre l'autor Idisou Omisola(94 articles publicats)

Idowu és un apassionat de qualsevol tecnologia intel·ligent i productivitat. Durant el temps lliure, juga amb la codificació i canvia al tauler d’escacs quan s’avorreix, però també li agrada deixar de banda la rutina de tant en tant. La seva passió per mostrar a la gent el camí cap a la tecnologia moderna el motiva a escriure més.

Més de Idowu Omisola

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us