from numpy import int32 from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME import config MYSQL_HOST = config.MYSQL_HOST MYSQL_PORT = config.MYSQL_PORT MYSQL_USER = config.MYSQL_USER MYSQL_PWD = config.MYSQL_PWD MYSQL_DB = config.MYSQL_DB SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{}:{}@{}:{}/{}".format(MYSQL_USER, MYSQL_PWD, MYSQL_HOST, MYSQL_PORT, MYSQL_DB) engine = create_engine(SQLALCHEMY_DATABASE_URI) Session = sessionmaker(bind=engine) session = Session() Base = declarative_base() class Personne(Base): # Cette classe correspond à la version objet de notre table personne __tablename__ = "personne" idPersonne = Column(int32,unique=True,ForeignKey=True) nom = Column(String(100), unique=False, nullable=False, primary_key=False) prenom = Column(String(100), nullable=False) dateNaissance = Column(DATETIME, nullable=False) tel = Column(String(12), nullable=False) def add_personne(idPersonne, nom, prenom, dateNaissance, tel): try: personne = Personne(idPersonne = idPersonne, nom = nom, prenom = prenom, dateNaissance=dateNaissance, tel=tel) session.add(personne) session.commit() return True except Exception as e: print(e) return False def get_personne_by_id(id): try: result = session.query(Personne).filter_by(id=id).first() return result except Exception as e: print(e) return False def get_all_personnes(): try: result = session.query(Personne).filter_by() return result except Exception as e: print(e) return False def delete_personne_by_id(id): try: user_to_delete = get_personne_by_id(id) if user_to_delete : session.delete(user_to_delete) session.commit() return True else: return False except Exception as e: print(e) return False def update_attribute(id, attributes): try: personne_to_update = get_personne_by_id(id) if personne_to_update : for k,v in attributes.items(): setattr(personne_to_update, k, v) session.commit() return personne_to_update else: return False except Exception as e: print(e) return False