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:
boccetta di installazione pip
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:
dal server di importazione couchdb
Quindi, crea il tuo database nello stesso file utilizzando il seguente blocco di codice:
dal server di importazione couchdb
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.
Relazionato: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
dal server di importazione couchdb
dal documento di importazione flaskext.couchdb
Quindi, crea un'app Flask e un'istanza del server CouchDB:
app = Flask (__name__, static_url_path='/static')
app.debug=Vero
server = server()
Ora memorizziamo alcuni input dell'utente in CouchDB:
@app.route('/', method=['GET', 'POST'])
def registro():
utente = {
"nome utente": "sito multimediale",
"email": "[email protected]",
"password": "dati crittografati"
}
db = server['muocouch'] #seleziona il database
doc_id, doc_rev = db.save (user) #store your data in th database
Restituzione "I tuoi dati dovrebbero ora essere nel 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=sviluppo
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:
corsa del pallone
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 = funzione (doc)
{ emit (doc.doc_rev, doc); }
myQuery = [docType].query (db, map_func, reduce_fun=Nessuno)
Ora usiamo praticamente il codice sopra:
#Crea un modello a oggetti documento chiamato "Utenti:"
Classe Utente (Documento):
doc_type = 'Utente'
@app.route('/', method=['GET', 'POST'])
def registro():
utente = {
"nome utente": "sito multimediale",
"email": "[email protected]",
"password": "dati crittografati"
}
db = server['muocouch'] #seleziona il database
# Usa la funzione di visualizzazione per recuperare i tuoi dati da CouchDB
map_func = funzione (doc)
{ emit (doc.doc_rev, doc); }
# Ottieni tutti i dati eseguendo un set di query
myQuery = User.query (db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Esegue il loop di tutti i nomi utente dal database
q2 = [i['email'] for i in myQuery] # Esegue il loop di tutti gli indirizzi email dal database
q3 = q+q2 # Unisce entrambe le query in un unico elenco
stampa (q3)
Restituzione "I tuoi dati sono ora nel 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:
se no (user['username'] in q3 o user['email'] in q3):
#salva i tuoi dati nel database se non esiste
id_doc, doc_rev = db.save (utente)
Restituzione "Registrato con successo
"
altro:
Restituzione "Nome utente o email esistente
"
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.
Relazionato: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.
La scelta di un tipo di database può essere complicata. Dovresti scegliere SQL o NoSQL?
Leggi Avanti
- Programmazione
- Banca dati
- Programmazione
- Tutorial sulla programmazione
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ù.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti