Comment créer une application d’enregistrement avec Python et une base de données
Python dispose d’un excellent support de base de données intégré à sa bibliothèque standard, ce qui vous permet de créer et d’interagir avec une base de données sans dépendre de frameworks externes comme l’ORM de Django.
SQLite est léger et facile à intégrer à Python. Découvrez les principes de base de la programmation de bases de données en Python avec une simple application d’enregistrement des utilisateurs.
Comment créer une base de données en Python
Vous pouvez trouver le code utilisé pour ce tutoriel dans ce dépôt GitHub.
Pour créer et interagir avec une base de données en Python, vous avez besoin de deux choses principales : une base de données de type connexion et une connexion curseur.
Une connexion vous aide à vous connecter à une base de données existante ou à en créer une nouvelle. Voici comment créer une connexion à une base de données en Python avec SQLite :
Le connect() prend en compte le chemin d’accès à une base de données existante. S’il n’y a pas de base de données au chemin spécifié, elle en créera une. Vous devez fermer la connexion à la base de données lorsque vous avez fini d’interagir avec la base de données.
Un curseur vous aide à interagir avec la base de données connectée. Vous utiliserez un curseur pour exécuter des requêtes SQL dans votre programme Python. Voici comment créer un curseur :
Vous pouvez créer un curseur en appelant la fonction curseur() sur un objet de connexion ouvert.
Comment exécuter une transaction de base de données en Python
À l’aide d’un curseur, vous pouvez exécuter des instructions SQL, des requêtes ou des scripts pour lire ou écrire des données ou modifier la structure de la base de données.
Il existe trois méthodes principales pour exécuter une transaction de base de données.
- Cursor.execute. Cette méthode permet d’exécuter une seule instruction SQL. Voici comment l’utiliser : Ce code appelle la méthode exécuter sur un curseur, en lui transmettant une chaîne de caractères contenant une instruction SQL.
- Cursor.executemany. Cette méthode vous permet d’exécuter la même instruction SQL plusieurs fois, avec des paramètres différents à chaque fois. Elle prend deux arguments : l’instruction SQL et un itérable. Une bonne utilisation de cette méthode consiste à insérer plusieurs objets dans la base de données en une seule fois : le code ci-dessus utilise la méthode executemany pour insérer plusieurs fois des valeurs dans la base de données.
Notez que la méthode ? dans l’instruction SQL. La méthode executemany les remplacera par les valeurs correspondantes pour chaque objet.
- Cursor.executescript. Comme son nom l’indique, cette méthode exécute un script SQL pour vous. Vous pouvez écrire vos instructions SQL dans un autre fichier et les exécuter avec la méthode executescript pour les exécuter :
Comment construire une application d’enregistrement avec Python et SQLite3
La logique d’une application d’enregistrement consiste à obtenir les informations de l’utilisateur avec Python et à les stocker dans une base de données. Ces étapes vous montreront comment créer un système d’inscription simple avec Python et SQLite3.
Étape 1 : Connexion à une base de données existante ou création d’une nouvelle base de données
Commencez par créer une base de données pour votre application ou connectez-vous à une base de données existante :
Le code ci-dessus crée un objet de connexion et un curseur pour interagir avec la base de données connectée.
Étape 2 : Créer une table pour les utilisateurs
Vous avez besoin d’une table pour stocker les données que les utilisateurs fourniront lors de leur inscription. Voici comment en créer une avec votre curseur :
Ce code créera un tableau appelé utilisateurs si elle n’existe pas dans votre base de données. Il crée quatre colonnes dans la table pour contenir les informations relatives à l’utilisateur. Le champ email est unique afin d’empêcher les utilisateurs de créer plusieurs comptes avec le même email.
L’appel à conn.commit est important pour valider la requête dans la base de données. Sans cela, aucune modification ne sera apportée à la base de données.
Si vous utilisez la méthode executescript, vous pouvez ajouter le mot-clé COMMIT à la fin de votre fichier SQL, afin de ne pas avoir à appeler conn.commit.
Étape 3 : Collecte des données de l’utilisateur
Les fonctions Python facilitent la réutilisation du code, c’est donc une bonne idée de créer une fonction pour gérer la fonction d’enregistrement. Cette fonction recueille le prénom, le nom, l’adresse électronique et le mot de passe de l’utilisateur.
Étape 4 : Vérification de l’exactitude du mot de passe
Modifiez le register_user pour s’assurer que l’utilisateur saisit deux fois le même mot de passe. Si ce n’est pas le cas, vous devez l’inviter à saisir à nouveau le mot de passe. Vous pouvez y parvenir à l’aide d’une boucle comme celle-ci :
Avec cette modification, un utilisateur ne peut pas s’enregistrer si ses mots de passe ne correspondent pas.
Étape 5 : vérification de l’unicité de l’adresse électronique
L’instruction SQL qui crée la table des utilisateurs définit le champ email comme unique. Cela signifie que la base de données renverra une erreur si un utilisateur s’inscrit avec une adresse électronique qui existe déjà. Pour agir de manière appropriée, vous devez gérer l’exception Python :
Ce code utilise le bloc try-except pour gérer l’erreur qui se produira en cas de doublons d’adresses électroniques. Si la base de données émet une IntegrityError, la boucle while se poursuit, invitant l’utilisateur à saisir une autre adresse électronique.
Pour cet exemple d’application, on peut supposer qu’une IntegrityError ne se produira qu’en cas de duplication de l’adresse électronique. Dans une application réelle, vous utiliserez probablement un traitement des erreurs plus avancé pour faire face à d’autres problèmes susceptibles de se produire.
Étape 6 : Insérer les données de l’utilisateur dans la base de données
Maintenant que vous avez collecté et vérifié les données de l’utilisateur, il est temps de les ajouter à la base de données. Pour ce faire, vous pouvez utiliser une requête SQL. Modifiez votre bloc try-except comme suit :
Dans le bloc try-except modifié, le curseur exécute une opération d’insertion SQL. Enfin, le bloc conn.commit valide l’opération SQL dans la base de données.
Si vous avez suivi toutes les étapes ci-dessus, vous devriez avoir une application qui enregistre les utilisateurs et les sauvegarde dans la base de données. Vous pouvez utiliser une application comme DB Browser pour SQLite pour visualiser le contenu de votre base de données :
Utilisation de bases de données au lieu de types de collection
Pour les bases de données simples, vous trouverez peut-être plus facile de déployer votre propre code. Cependant, lorsque votre application se développe et que votre base de données devient plus complexe, envisagez d’utiliser un outil tel que Django ORM pour simplifier la tâche.
Pour continuer à pratiquer vos compétences de base de données de bas niveau, essayez de mettre en œuvre un système de connexion pour compléter le programme d’inscription.
Améliorez votre QI technologique grâce à nos lettres d’information gratuites
En vous abonnant, vous acceptez notre politique de confidentialité et pouvez recevoir des communications occasionnelles ; vous pouvez vous désabonner à tout moment.