Créer une interface utilisateur avec Python et MySql

Plongez dans le monde fascinant de la programmation et découvrez comment Python, un langage de programmation polyvalent, et MySql, un système de gestion de bases de données éprouvé, peuvent être utilisés ensemble pour créer des interfaces utilisateur robustes.
22 juin 2023 par
Créer une interface utilisateur avec Python et MySql
Kevin Andreazza
| Aucun commentaire pour l'instant

Bienvenue dans ce guide détaillé sur comment "Créer une interface utilisateur avec Python et MySql". Que vous soyez un débutant en programmation ou un développeur expérimenté cherchant à élargir vos compétences, ce guide vous fournira des instructions étape par étape pour créer une interface utilisateur efficace en utilisant Python et MySql

Réseaux sociaux

Introduction

La programmation, c'est un peu comme le sport, ça peut faire peur au début, mais une fois qu'on s'y met, on se rend compte que c'est pas si terrible. Et puis, c'est un super outil pour naviguer dans notre monde hyper connecté. Que vous soyez un débutant qui veut se lancer ou un pro qui veut élargir ses compétences, savoir créer une interface utilisateur et travailler avec des bases de données, c'est un vrai plus. 

Dans cet article, je vais vous guider pas à pas pour créer une interface utilisateur avec Python et MySql. On va poser une question toute simple à l'utilisateur : "Quels sont vos repas habituels ?" et on va enregistrer les réponses dans une base de données MySql

Allez, c'est parti !

Pourquoi Python et MySql ?

Python, c'est un peu le couteau suisse de la programmation. C'est facile à apprendre, c'est clair, c'est concis et c'est super polyvalent. Que vous vouliez faire du web, de la data science ou du développement d'applications, Python est votre ami. Et quand il s'agit de bases de données, on a MySql, un système de gestion de bases de données qui a fait ses preuves. Il est fiable et performant. 

Avec Python, ils forment un duo de choc pour créer des applications robustes qui peuvent gérer une tonne de données.

Création de l'interface utilisateur

Bon, maintenant que vous êtes prêts, on va commencer à coder. La première étape, c'est de créer l'interface utilisateur. Pour ça, on va utiliser Tkinter, une bibliothèque Python pour créer des interfaces graphiques. Voici un exemple de code qui crée une interface simple avec une question et un champ pour la réponse :

import tkinter  as tk

On importe le module tkinter en tant que tk pour simplifier l'appel aux fonctions. 
On crée une fenêtre avec tk.Tk()
On ajoute un label avec la question, un champ pour la réponse, et un bouton qui appelle la fonction submit quand on clique dessus. 
La fonction submit, elle fait juste afficher la réponse de l'utilisateur.

La méthode pack, que vous retrouvez un peu partout, est appelée sur chaque élément de l'interface utilisateur pour l'ajouter à la fenêtre principale

Cette méthode positionne automatiquement l'élément dans la fenêtre. Vous pouvez également utiliser les méthodes grid ou place si vous voulez un contrôle plus précis sur le positionnement des éléments.


  Détails des éléments du code ci-dessous  


def submit ()

On définit une fonction appelée submit. Cette fonction sera appelée lorsque l'utilisateur cliquera sur le bouton "Submit"


print("Votre repas habituel est : " + entry.get())

Dans la fonction submit, on imprime la réponse de l'utilisateur. entry.get() permet de récupérer le texte entré par l'utilisateur dans le champ de saisie

  • root = root.Tk()
On crée une nouvelle fenêtre tkinter. Cette fenêtre sera la fenêtre principale de notre application. 
root est une instance de la classe Tk de la bibliothèque Tkinter. C'est la fenêtre principale de l'interface utilisateur (UI). Tous les autres éléments de l'interface utilisateur (comme les labels, les champs de saisie et les boutons) sont ajoutés à cette fenêtre.
  • label = tk.Label(root, text="Quels sont vos repas habituels ?")
On crée un label (un texte) qui sera affiché dans la fenêtre. Le texte du label est "Quels sont vos repas habituels ?" 


label est une instance de la classe Label de Tkinter. Un label est un élément d'interface utilisateur qui affiche du texte à l'utilisateur.
  • entry = tk.Entry(root)
On crée un champ de saisie où l'utilisateur pourra entrer sa réponse.
entry est une instance de la classe Entry de Tkinter. Un champ d'entrée est un élément d'interface utilisateur qui permet à l'utilisateur de saisir du texte. Dans ce cas, le champ d'entrée est utilisé pour que l'utilisateur puisse entrer son repas habituel.
  • button = tk.Button(root, text="Submit", command=submit)
On crée un bouton avec le texte "Submit". Lorsque l'utilisateur cliquera sur ce bouton, la fonction submit sera appelée. 

button est une instance de la classe Button de Tkinter. Un bouton est un élément d'interface utilisateur que l'utilisateur peut cliquer.

  • root.mainloop()
On démarre la boucle principale de tkinter. Cette boucle permet à la fenêtre de rester ouverte et de réagir aux actions de l'utilisateur (comme les clics de souris).
mainloop est appelée sur la fenêtre principale pour démarrer la boucle principale de l'interface utilisateur. Cette boucle attend que l'utilisateur interagisse avec l'interface utilisateur, comme en cliquant sur un bouton ou en entrant du texte dans un champ d'entrée.

Alors, pour tous les utilisateurs Linux, notamment ceux qui utilisent Ubuntu ou d'autres distributions basées sur Debian,  vous pourriez avoir besoin de l'installer manuellement. 

Pas de panique, c'est super simple !

  • sudo apt install python3-tk

Connexion à la base de données MySql

Maintenant, on va se connecter à la base de données MySql. Pour ça, on va utiliser une bibliothèque Python qui s'appelle mysql-connector-python. Vous pouvez l'installer avec pip en tapant pip install mysql-connector-python dans votre terminal. Mais n'oubliez pas qu'il vous faut créer cette base de donnée directement depuis MySql pour que le script fonctionne correctement. Si vous ne savez pas comment faire, je vous invite à aller jeter un œil à cet article.

import mysql.connector

Avec le module mysql.connector on utilise la fonction .connect()​ de connector pour établir une connexion à la base de données

 Pensez à fermer votre base de données à la fin du programme avec l'instance de classe .close()

   Détails des éléments du code ci-dessous  


Enregistrement des réponses dans la base de données

Une fois qu'on a une connexion à la base de données, on peut utiliser cette connexion pour exécuter des requêtes SQL et interagir avec la base de données. Dans notre cas, on veut enregistrer les réponses de l'utilisateur dans la base de données.

Voici comment vous pouvez modifier la fonction submit pour enregistrer la réponse de l'utilisateur dans la base de données :

def submit()

Dans ce code, on récupère la réponse de l'utilisateur, on crée un curseur à partir de la connexion à la base de données, on exécute une requête SQL INSERT pour insérer la réponse de l'utilisateur dans la base de données, et enfin, on appelle la méthode commit de la connexion à la base de données pour enregistrer les modifications.


  Détails des éléments du code ci-dessous  


.get()

meal = entry.get() : récupérer le texte que l'utilisateur a entré dans le champ de saisie et le stocke dans la variable meal.

Utilisée pour récupérer le texte actuellement entré dans le champ de saisie
Cette méthode ne prend aucun argument et renvoie une chaîne de caractères contenant le texte du champ de saisie.

.cursor()

request_to_sql_server = connexion_to_database.cursor() : créer un nouvel objet Cursor à partir de l'objet connexion_to_database et le stocke dans la variable request_to_sql_server. 

La méthode cursor() est une méthode de la classe Connection de la bibliothèque mysql.connector.
Avec cette méthode on peut créer un nouvel objet Cursor, qui peut être utilisé pour exécuter des requêtes SQL et récupérer les résultats. Cette méthode ne prend aucun argument et renvoie une nouvelle instance de la classe Cursor.

.execute()

mysql_query = f"INSERT INTO repas (meal) VALUES (%s)" : créer une nouvelle requête SQL INSERT et la stocke dans la variable mysql_query. 
request_to_sql_server.execute(mysql_query, (meal,)) : exécute la requête SQL sur la base de données. 

Méthode de la classe Cursor qui est utilisée pour exécuter une requête SQL. Elle prend deux arguments : une chaîne de caractères contenant la requête SQL, et un tuple contenant les valeurs à insérer dans la requête. Cette méthode ne renvoie rien.

.commit()

connexion_to_database.commit()


Valider les modifications apportées à la base de données. Sans cette méthode, les modifications apportées à la base de données ne seraient pas enregistrées de manière permanente. Cette méthode ne prend aucun argument et ne renvoie rien.

.close() 

request_to_sql_server.close()

Fermer le curseur. Il est important de toujours fermer vos curseurs lorsque vous avez terminé de les utiliser pour libérer les ressources du système. Cette méthode ne prend aucun argument et ne renvoie rien.




Nous sommes arrivés à la fin de notre guide sur comment "Créer une interface utilisateur avec Python et MySql". 

Nous espérons que vous l'avez trouvé utile et instructif. Avec les connaissances que vous avez acquises, vous êtes maintenant prêt à créer votre propre interface utilisateur avec Python et MySql

N'oubliez pas que la pratique est la clé pour maîtriser toute compétence. 
Alors, continuez à coder, continuez à apprendre et continuez à vous améliorer. Si vous avez des questions ou des commentaires, n'hésitez pas à les partager. 

Bonne programmation !



Créer une interface utilisateur avec Python et MySql
Kevin Andreazza 22 juin 2023
Partager cet article
Étiquettes
Archiver
Se connecter pour laisser un commentaire.