75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
"""
|
|
db.py
|
|
======
|
|
Module de gestion de la connexion MySQL pour le moteur de résultats.
|
|
|
|
Ce module est séparé pour éviter de dupliquer la logique de connexion
|
|
dans plusieurs fichiers Python. Si plus tard tu veux réutiliser cette
|
|
connexion dans d'autres scripts, tu n'auras qu'à importer get_connection().
|
|
"""
|
|
|
|
import mysql.connector
|
|
from mysql.connector import Error
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# CONFIGURATION DE LA BASE DE DONNÉES
|
|
# ---------------------------------------------------------------------------
|
|
# ⚠ IMPORTANT :
|
|
# - Adapte ces valeurs à TON environnement (dev / prod).
|
|
# - Idéalement, tu peux plus tard les lire à partir d'un fichier
|
|
# (ex: info_serveur.txt) pour éviter de hardcoder les mots de passe.
|
|
# ---------------------------------------------------------------------------
|
|
DB_CONFIG = {
|
|
"host": "serveur-prod.progiweb.net",
|
|
"user": "ms1reader_bd", # ajuste au besoin
|
|
"password": "X~=v]lg-l]4,T2FF", # ajuste au besoin
|
|
"database": "ms1reader_centrale",
|
|
"port": 3306
|
|
}
|
|
|
|
TABLE_NAME = "reader_lectures"
|
|
|
|
def get_connection():
|
|
"""
|
|
Crée et retourne une connexion MySQL.
|
|
|
|
Returns
|
|
-------
|
|
mysql.connector.connection_cext.CMySQLConnection
|
|
Connexion déjà ouverte vers la base configurée dans DB_CONFIG.
|
|
|
|
Raises
|
|
------
|
|
mysql.connector.Error
|
|
Si la connexion échoue (mauvais host, user, password, etc.).
|
|
"""
|
|
return mysql.connector.connect(**DB_CONFIG)
|
|
|
|
|
|
def test_connection():
|
|
"""
|
|
Petit utilitaire pour tester rapidement la connexion.
|
|
Tu peux exécuter ce fichier directement :
|
|
python -m engine.db
|
|
"""
|
|
try:
|
|
cnx = get_connection()
|
|
if cnx.is_connected():
|
|
print("[OK] Connexion MySQL réussie.")
|
|
else:
|
|
print("[ERREUR] Connexion MySQL NON établie.")
|
|
except Error as e:
|
|
print(f"[ERREUR] Mysql : {e}")
|
|
finally:
|
|
try:
|
|
if cnx and cnx.is_connected():
|
|
cnx.close()
|
|
except NameError:
|
|
# cnx n'existe pas si la connexion a échoué avant son affectation
|
|
pass
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_connection()
|