Comment connecter votre application Flask avec CouchDB : une base de données NoSQL

Comment connecter votre application Flask avec CouchDB : une base de données NoSQL

Connecter Flask à des bases de données SQL comme PostgreSQL et SQLite est un jeu d'enfant. Mais le framework se synchronise également parfaitement avec les bases de données NoSQL comme CouchDB. Et comme avantage supplémentaire, vous pouvez facilement interroger vos données lorsque vous utilisez CouchDB avec Flask.





Prêt à changer en utilisant un NoSQL comme CouchDB avec votre application Flask ? Voici comment configurer CouchDB sur votre ordinateur local et le connecter à Flask.





Qu'est-ce que CouchDB ?

CouchDB est une base de données NoSQL actuellement détenue par Apache Software Foundation. Écrit avec Erlang, le logiciel est sorti pour la première fois en 2005.





Contrairement aux bases de données classiques liées à des tables auxquelles vous êtes probablement habitué, CouchDB est un système de gestion de base de données non relationnelle qui stocke les données au format JSON brut.

CouchDB n'est pas bloquant, il ne verrouille donc pas la base de données lors de la saisie des données. L'un des points forts de CouchDB est qu'il utilise une politique de contrôle de concurrence multi-versions pour lire et écrire des données. Il permet donc des entrées simultanées de plusieurs utilisateurs sans interférence de la structure existante des données dans la base de données.



Ainsi, CouchDB est rapide lors des requêtes et facile à utiliser tout en utilisant des méthodes asynchrones. Cela dit, cela ne le rend pas meilleur que son homologue SQL. Chaque technologie a ses avantages et ses inconvénients.

Configuration de CouchDB

Pour commencer à utiliser CouchDB, téléchargez et installez une version compatible à partir de Site officiel de CouchDB .





Et si cette dernière version ne fonctionne pas pour vous, passez à la Archives de CouchDB et téléchargez la version 1.6.1, qui est une version antérieure de CouchDB.

Une fois que vous avez installé CouchDB, exécutez-le sur votre PC comme vous le feriez avec n'importe quelle autre application de bureau.





Ouvrez votre navigateur. Lancez ensuite le serveur de CouchDB en collant ce qui suit dans votre barre d'adresse :

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

Configurer Python et Flask

Ce didacticiel suppose cependant que Python est déjà installé sur votre PC. Sinon, allez à python.org et installez la dernière version de Python sur votre PC.

Une fois que vous avez configuré CouchDB, créez un dossier racine du projet. Ensuite, ouvrez votre ligne de commande dans ce répertoire et créez un Environnement virtuel Python .

Installez la dernière version de Flask dans l'espace virtuel en utilisant pépin :

comment connecter mon téléphone à mon ordinateur
pip install flask

Connectez le flacon avec CouchDB

Pour commencer à utiliser CouchDB avec votre application Flask, installez Flask-CouchDB , le package d'exécution pour connecter la base de données avec Flask.

Pour faire ça:

pip install Flask-CouchDB

Une fois que vous installez Flask-CouchDB avec succès, créez un app.py fichier dans ce dossier racine. De même, créez un base de données.py fichier—cela gère la création de votre base de données.

Ouvert base de données.py et importez les packages suivants :

from couchdb import Server

Ensuite, créez votre base de données dans ce même fichier en utilisant le bloc de code suivant :

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

Exécuter base de données.py via la CLI. Ensuite, ouvrez ou actualisez le serveur local de CouchDB via votre navigateur comme vous l'avez fait précédemment. Vous devriez maintenant voir la base de données ( mucouch dans ce cas) répertorié dans CouchDB.

En rapport: Comment exécuter un script Python

Noter: Assurez-vous d'utiliser une convention de nommage en minuscules pour les bases de données, car CouchDB peut ne pas accepter les majuscules ou les casses mixtes.

Stockez vos premières données CouchDB à l'aide de Flask

En fin de compte, le but de toute base de données est le stockage de données. Une fois que vous avez une base de données dans CouchDB, vous pouvez immédiatement commencer à y stocker des données à partir de votre application Flask.

Pour commencer, ouvrez app.py et importez les packages suivants :

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

Ensuite, créez une application Flask et une instance de serveur CouchDB :

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

Stockons maintenant quelques entrées utilisateur dans 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 vous le souhaitez, vous pouvez mettre votre serveur Flask en mode développement avant de l'exécuter.

Pour ce faire, exécutez la commande suivante via votre CLI :

set FLASK_ENV=development

Notez que la définition du mode serveur est facultative. Cela rend seulement le débogage de votre code sans tracas.

Mais quel que soit le paramètre du mode serveur, voici comment démarrer le serveur Flask via le CMD :

flask run

Flask, cependant, définit par défaut votre port sur hôte local : 5000 . Vous devriez maintenant voir le message dans le H2 tag une fois que vous chargez cette adresse via votre navigateur.

Valider les données et vérifier les doublons à l'aide des requêtes CouchDB

Pour standardiser davantage cela, vous pouvez utiliser des requêtes pour valider les entrées et éviter les doublons dans votre base de données. Interroger CouchDB est un peu différent de la façon dont vous le faites avec des bases de données SQL.

CouchDB utilise ce qu'il appelle des « vues JavaScript » pour interroger les données de la base de données. Heureusement, c'est relativement simple.

Avant de continuer, voici à quoi ressemble une vue de requête CouchDB de base :

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

Maintenant, utilisons pratiquement le code ci-dessus :

#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

'

Le code ci-dessus utilise le Utilisateur class pour interroger les données récupérées par la fonction view. Portez une attention particulière aux paramètres de l'ensemble de requêtes ( maRequête ).

Impression q3 , comme vous l'avez fait ci-dessus, devrait maintenant afficher tous les noms d'utilisateur et adresses e-mail de la base de données dans la ligne de commande.

Voici donc comment vous pouvez utiliser cette requête pour valider les entrées des utilisateurs :

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'actualisation de votre navigateur renvoie le autre déclaration à chaque fois que vous essayez de saisir un nom d'utilisateur ou un e-mail qui est déjà dans la base de données. Et si vous en saisissez un nouveau, il stocke avec succès vos données en exécutant le si état.

En rapport: Comment utiliser l'instruction Python if

C'est ça! Vous venez de créer votre première base de données NoSQL à l'aide de Flask-CouchDB.

Bien que la création et l'interrogation de bases de données dans CouchDB tournent autour des exemples que nous avons mis en évidence ici, vous pouvez explorer davantage les fonctionnalités de Flask. Par exemple, vous pouvez lancer des champs de saisie en utilisant wtforms et signalez les doublons à l'aide du message de Flask éclat .

Vous pouvez même transmettre votre requête à jQuery de JavaScript pour valider les entrées et vérifier les doublons de manière asynchrone.

CouchDB est-il meilleur que les bases de données SQL ?

L'utilisation de CouchDB ou de toute autre base de données NoSQL avec Flask ou toute autre technologie de programmation dépend de vos préférences. Mais cela s'avère pratique lorsqu'il s'agit de données sans structure et de supports bruts.

Cela dit, avant de vous décider, vous voudrez peut-être examiner les différences entre les bases de données NoSQL et SQL pour vous aider à décider laquelle d'entre elles convient à votre projet.

Partager Partager Tweeter E-mail SQL vs NoSQL : quelle est la meilleure base de données pour votre prochain projet ?

Le choix d'un type de base de données peut être délicat. Faut-il choisir SQL ou NoSQL ?

Lire la suite
Rubriques connexes
  • La programmation
  • base de données
  • La programmation
  • Tutoriels de codage
A propos de l'auteur Idisou Omisola(94 articles publiés)

Idowu est passionné par tout ce qui concerne les technologies intelligentes et la productivité. Pendant son temps libre, il s'amuse avec le codage et passe à l'échiquier quand il s'ennuie, mais il aime aussi de temps en temps rompre avec la routine. Sa passion pour montrer aux gens la voie à suivre avec la technologie moderne le motive à écrire davantage.

Plus de Idowu Omisola

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner