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.

instagram viewer

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

flacon d'installation de pip

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

à partir du serveur d'importation couchdb

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

à partir du serveur d'importation couchdb
serveur = Serveur()
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 dénomination 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:

de l'importation du flacon Flacon
à partir du serveur d'importation couchdb
depuis flaskext.couchdb importer le document

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

app = Flask (__name__, static_url_path='/static')
app.debug=Vrai
serveur = Serveur()

Stockons maintenant quelques entrées utilisateur dans CouchDB:

@app.route('/', methodes=['GET', 'POST'])
registre def() :
utilisateur = {
"username":"site média",
"email":"[email protected]",
"mot de passe": "données cryptées"
}
db = server['muocouch'] #sélectionnez la base de données
doc_id, doc_rev = db.save (utilisateur) #stockez vos données dans la base de données
revenir "

Vos données devraient maintenant être dans la base de données

"

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:

définir FLASH_ENV=développement

Notez que la définition du mode serveur est facultative. Cela ne fait que déboguer votre code sans tracas.

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

ballon

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 = fonction (doc) 
{ émettre (doc.doc_rev, doc); }
myQuery = [docType].query (db, map_func, reduce_fun=None)

Maintenant, utilisons pratiquement le code ci-dessus:

#Créez un modèle d'objet de document appelé "Utilisateurs:"
classe Utilisateur (Document):
doc_type = 'Utilisateur'
@app.route('/', methodes=['GET', 'POST'])
registre def() :
utilisateur = {
"username":"site média",
"email":"[email protected]",
"mot de passe": "données cryptées"
}
db = server['muocouch'] #sélectionnez la base de données
# Utilisez la fonction d'affichage pour récupérer vos données depuis CouchDB
map_func = fonction (doc)
{ émettre (doc.doc_rev, doc); }
# Obtenez toutes les données en exécutant un ensemble de requêtes
myQuery = User.query (db, map_func, reduce_fun=None, reverse=True)
q = [i['username'] for i in myQuery] # Boucle tous les noms d'utilisateur de la base de données
q2 = [i['email'] for i in myQuery] # Boucle toutes les adresses e-mail de la base de données
q3 = q+q2 # Fusionner les deux requêtes en une seule liste
imprimer (q3)
revenir "

Vos données sont maintenant dans la base de données

"

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:

sinon (user['username'] en q3 ou user['email'] en q3) :
#stockez vos données dans la base de données si elles n'existent pas
doc_id, doc_rev = db.save (utilisateur)
revenir "

Enregistré avec succès

"
autre:
revenir "

Le nom d'utilisateur ou l'adresse e-mail existe

"

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.

PartagerTweeterE-mail
SQL contre 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
  • Programmation
  • base de données
  • Programmation
  • Tutoriels de codage
A propos de l'auteur
Idowu 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