init projet
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# ============================================================
|
||||
# config.py — Configuration & connexion SQL Server
|
||||
# Data Sentinel | COYAUD Anthony | 2026
|
||||
# ============================================================
|
||||
|
||||
import pyodbc
|
||||
from contextlib import contextmanager
|
||||
|
||||
|
||||
class Config:
|
||||
# Chaîne de connexion SQL Server
|
||||
DB_CONNECTION_STRING = (
|
||||
"Driver={ODBC Driver 17 for SQL Server};"
|
||||
"Server=LaptopCA\\SQLEXPRESS;"
|
||||
"Database=DataSentinel;"
|
||||
"Trusted_Connection=yes;"
|
||||
)
|
||||
|
||||
# Paramètres API
|
||||
API_TITLE = "Data Sentinel API"
|
||||
API_VERSION = "1.0.0"
|
||||
API_DESCRIPTION = "API de monitoring de la qualité des données — XEFI"
|
||||
|
||||
# Sécurité JWT
|
||||
SECRET_KEY = "data-sentinel-secret-change-in-prod"
|
||||
ALGORITHM = "HS256"
|
||||
TOKEN_EXPIRE_MINUTES = 60
|
||||
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# Connexion — retourne un curseur pyodbc via context manager
|
||||
# ----------------------------------------------------------------
|
||||
|
||||
def get_connection() -> pyodbc.Connection:
|
||||
"""Ouvre une connexion SQL Server et la retourne."""
|
||||
return pyodbc.connect(Config.DB_CONNECTION_STRING)
|
||||
|
||||
|
||||
@contextmanager
|
||||
def get_cursor():
|
||||
"""
|
||||
Context manager : ouvre connexion + curseur, commit ou rollback,
|
||||
ferme proprement.
|
||||
|
||||
Usage :
|
||||
with get_cursor() as cursor:
|
||||
cursor.execute("SELECT ...")
|
||||
rows = cursor.fetchall()
|
||||
"""
|
||||
conn = get_connection()
|
||||
cursor = conn.cursor()
|
||||
try:
|
||||
yield cursor
|
||||
conn.commit()
|
||||
except Exception:
|
||||
conn.rollback()
|
||||
raise
|
||||
finally:
|
||||
cursor.close()
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user