Come connettere la tua app Flask con CouchDB: un database NoSQL

Come connettere la tua app Flask con CouchDB: un database NoSQL

Collegare Flask con database SQL come PostgreSQL e SQLite è un gioco da ragazzi. Ma il framework si sincronizza perfettamente anche con i database NoSQL come CouchDB. E come ulteriore vantaggio, puoi interrogare facilmente i tuoi dati quando usi CouchDB con Flask.





Pronto a fare una modifica utilizzando un NoSQL come CouchDB con la tua app Flask? Ecco come configurare CouchDB sul tuo computer locale e connetterlo con Flask.





Cos'è CouchDB?

CouchDB è un database NoSQL attualmente di proprietà della Apache Software Foundation. Scritto con Erlang, il software è stato rilasciato per la prima volta nel 2005.





A differenza dei normali database collegati a tabelle a cui probabilmente sei abituato, CouchDB è un sistema di gestione di database non relazionale che archivia i dati come JSON non elaborato.

CouchDB non è bloccante, quindi non blocca il database durante l'immissione dei dati. Uno dei punti di forza di CouchDB è che utilizza una politica di controllo della concorrenza multi-versione per leggere e scrivere i dati. Quindi consente input simultanei da più utenti senza interferenze dalla struttura esistente dei dati nel database.



Pertanto, CouchDB è veloce durante le query e facile da usare durante l'utilizzo di metodi asincroni. Detto questo, questo non lo rende migliore della sua controparte SQL. Ogni tecnologia ha i suoi pro e i suoi contro.

Configurazione di CouchDB

Per iniziare a utilizzare CouchDB, scarica e installa una versione compatibile da Sito ufficiale di CouchDB .





E se l'ultima versione non funziona per te, procedi al Archivio CouchDB e scarica la versione 1.6.1, che è una versione precedente di CouchDB.

Una volta installato CouchDB, eseguilo sul tuo PC come faresti con qualsiasi altra app desktop.





Apri il tuo browser. Quindi avvia il server di CouchDB incollando quanto segue nella barra degli indirizzi:

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

Configura Python e Flask

Questo tutorial, tuttavia, presuppone che tu abbia già installato Python sul tuo PC. Altrimenti vai su python.org e installa l'ultima versione di Python sul tuo PC.

Una volta configurato CouchDB, crea una cartella radice del progetto. Quindi apri la tua riga di comando in quella directory e crea a Ambiente virtuale Python .

Installa l'ultima versione di Flask nello spazio virtuale usando pip :

cambia l'icona del tipo di file windows 10
pip install flask

Connetti Flask con CouchDB

Per iniziare a utilizzare CouchDB con la tua app Flask, installa Flask-CouchDB , il pacchetto runtime per connettere il database con Flask.

Per fare questo:

pip install Flask-CouchDB

Una volta installato Flask-CouchDB con successo, creare un app.py file in quella cartella principale. Allo stesso modo, crea a database.py file: gestisce la creazione del database.

Aprire database.py e importare i seguenti pacchetti:

from couchdb import Server

Quindi, crea il tuo database nello stesso file utilizzando il seguente blocco di codice:

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

Eseguire database.py tramite CLI. Quindi apri o aggiorna il server locale di CouchDB tramite il browser come hai fatto in precedenza. Ora dovresti vedere il database ( muocouch in questo caso) elencati in CouchDB.

Imparentato: Come eseguire uno script Python

Nota: Assicurati di utilizzare una convenzione di denominazione minuscola per i database, poiché CouchDB potrebbe non accettare maiuscole o miste.

Memorizza i tuoi primi dati CouchDB usando Flask

In definitiva, lo scopo di qualsiasi database è l'archiviazione dei dati. Una volta che hai un database in CouchDB, puoi iniziare subito a memorizzare i dati in esso dall'app Flask.

Per iniziare, apri app.py e importare i seguenti pacchetti:

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

Quindi, crea un'app Flask e un'istanza del server CouchDB:

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

Ora memorizziamo alcuni input dell'utente in 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

'

Se lo desideri, puoi impostare il tuo server Flask in modalità di sviluppo prima di eseguirlo.

Per fare ciò, esegui il seguente comando tramite la tua CLI:

set FLASK_ENV=development

Si noti che l'impostazione della modalità server è facoltativa. Rende solo il debug del tuo codice senza problemi.

Ma indipendentemente dall'impostazione della modalità server, ecco come avviare il server Flask tramite CMD:

flask run

Flask, tuttavia, imposta la tua porta su host locale: 5000 . Ora dovresti vedere il messaggio nel H2 tag una volta caricato questo indirizzo tramite il browser.

Convalida dei dati e verifica dei duplicati utilizzando le query CouchDB

Per standardizzare ulteriormente questo aspetto, puoi utilizzare le query per convalidare gli input e prevenire duplicati nel tuo database. L'interrogazione di CouchDB è leggermente diversa da come si esegue con i database SQL.

CouchDB utilizza ciò che chiama 'viste JavaScript' per interrogare i dati dal database. Fortunatamente, questo è relativamente semplice.

Prima di procedere ulteriormente, ecco come appare una visualizzazione di query CouchDB di base:

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

Ora usiamo praticamente il codice sopra:

#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

'

Il codice sopra usa il Utente classe per interrogare i dati recuperati dalla funzione di visualizzazione. Prestare molta attenzione ai parametri all'interno del set di query ( la mia domanda ).

Stampa q3 , come hai fatto sopra, ora dovrebbe restituire tutti i nomi utente e gli indirizzi e-mail nel database all'interno della riga di comando.

Quindi, ecco come puoi utilizzare questa query per convalidare gli input degli utenti:

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

'

L'aggiornamento del browser restituisce il altro ogni volta che si tenta di inserire un nome utente o un'e-mail già presenti nel database. E se ne stai inserendo uno nuovo, memorizza correttamente i tuoi dati eseguendo il Se condizione.

Imparentato: Come usare l'istruzione if di Python?

Questo è tutto! Hai appena creato il tuo primo database NoSQL utilizzando Flask-CouchDB.

Sebbene la creazione e l'interrogazione di database in CouchDB ruotino attorno agli esempi che abbiamo evidenziato qui, puoi esplorare ulteriormente le funzionalità di Flask. Ad esempio, puoi far girare i campi di input usando wtforms e contrassegna i duplicati usando il messaggio di Flask veloce .

Puoi anche passare la tua query a jQuery di JavaScript per convalidare gli input e controllare i duplicati in modo asincrono.

CouchDB è migliore dei database SQL?

L'uso di CouchDB o di qualsiasi altro database NoSQL con Flask o qualsiasi altra tecnologia di programmazione dipende dalle tue preferenze. Ma è utile quando si ha a che fare con dati senza struttura e supporti grezzi.

Detto questo, prima di decidere, potresti voler esaminare le differenze tra i database NoSQL e SQL per aiutarti a decidere quale di essi è adatto al tuo progetto.

Condividere Condividere Tweet E-mail SQL vs NoSQL: qual è il miglior database per il tuo prossimo progetto?

La scelta di un tipo di database può essere complicata. Dovresti scegliere SQL o NoSQL?

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Banca dati
  • Programmazione
  • Tutorial sulla programmazione
Circa l'autore Idisou Omisola(94 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero gioca con la programmazione e quando si annoia passa alla scacchiera, ma ama anche staccare ogni tanto dalla routine. La sua passione per mostrare alle persone la tecnologia moderna lo motiva a scrivere di più.

Altro da Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti