97 lines
2.6 KiB
Python
97 lines
2.6 KiB
Python
from sqlalchemy.orm import sessionmaker
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
from sqlalchemy import ForeignKey, create_engine, Column, String, DATETIME,Integer
|
|
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"
|
|
id = Column(Integer,unique=True,primary_key=True)
|
|
nom = Column(String(100), unique=False, nullable=False)
|
|
prenom = Column(String(100), nullable=False)
|
|
dateNaissance = Column(DATETIME, nullable=False)
|
|
tel = Column(String(12), nullable=False)
|
|
|
|
def add_personne(id, nom, prenom, dateNaissance, tel):
|
|
try:
|
|
personne = Personne(id = id,
|
|
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):
|
|
#TODO: à controler
|
|
try:
|
|
personne_to_delete = get_personne_by_id(id)
|
|
if personne_to_delete :
|
|
session.delete(personne_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
|
|
|
|
def find_id():
|
|
#TODO trouver comment trouver le max d'un id.
|
|
try:
|
|
result = session.query(Personne).orderBy(id).first()
|
|
return result
|
|
except Exception as e:
|
|
print("erreur")
|
|
return False |