Problème d'insertion d'informations dans la base de données
Bonjour,
Je débute en programmation et en Orienté Objet en faisant un petit programme (ajout, modification, suppression, affichage) des utilisateurs dans une base de données. L'affichage des employés de ma base marche sans problème par contre je bloque sur l'insertion. Le code de l'insertion s'exécute sans erreur mais les informations ne sont pas insérées dans la base données. J'ai aussi du mal à convertir un string au format date (2015-02-15, format du champ date dans MySQL).
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #!/usr/bin/python3
# -*- coding: utf-8 -*-
from db_connection import * #Database importation
class Employe:
"""Class with employe caracteritics and methods"""
def __init__(self):
"""Default constructor
Initialization of employe"""
self.cursor = db_connection.db.cursor()
self.nom = " "
self.prenom = " "
self.sexe = " "
self.date_n = 0
self.lieu_n = " "
def afficher(self):# Method to print all data from database
self.cursor.execute("SELECT * FROM employe")
data = self.cursor.fetchall()
for row in data:
print("Identifiant :{}, Nom :{}, Prénom :{}, Sexe :{}, Date de naissance :{}, Ville :{}".
format(row[0], row[1], row[2], row[3], row[4], row[5]))
"""db_connection.db.close()"""
def ajouter(self):# Method to add a employee into database
print("Veuillez entrer vos informations : ")
self.nom = input("Nom :")
self.prenom = input("Prenom :")
self.sexe = input("Sexe :")
self.date_n = "2015-05-15"
self.lieu_n = input("Lieu de naissance :")
req = "INSERT INTO employe (nom, prenom, sexe, date_nais, lieu_nais) VALUES(%s, %s, %s, %s, %s)"
self.arg = (self.nom, self.prenom, self.sexe, self.date_n, self.lieu_n)
self.cursor.execute(req, self.arg)
"""db_connection.db.close()"""
#Test
if __name__ == "__main__":
personne = Employe()
personne.afficher()# Jusqu'ici tout marche
personne1 = Employe() # Avant d'ajouter un employe, il faut d'abord le créer
personne1.ajouter() # Appel de méthode pour ajout des informations
personne1.afficher() " M'affiche que les information de cette ligne : personne.afficher() |
Question : J'ai lu un cours sur l'Orienté Objet et pour le mettre en pratique, je fais des petits projets. Je pense qu'en faisant ainsi, je vais bien le comprendre, car s'il je trouve qu'il y a une notion que j'ai oubliée ou que je n'ai pas bien comprise, je relis la notion dans le cours. Alors, je me pose la question de savoir si selon vous si c'est une bonne façon bien avancer.
Merci !
PS : Je compte gérer des erreurs et des exceptions après. Je veux d'abord que vérifier que le code marche avant tout.