C'est possible, mais ce n'est pas une bonne idée de mélanger le code et les données (toutes sortes - configuration, HTML, etc.), pour au moins deux raisons :
- Conception :vous vous retrouvez avec ce que l'on appelle un couplage élevé . Situation où il y a beaucoup de dépendances, difficiles à suivre, et votre application est de plus en plus difficile à modifier.
- Sécurité :vos informations d'identification se retrouvent tôt ou tard dans une archive ou un référentiel de sauvegarde de code. Le fichier de configuration peut en outre être crypté, le fichier py pas vraiment. S'il s'agit d'une application Web, il est plus facile de restreindre l'accès à un seul fichier de configuration qu'à tous les fichiers py pouvant contenir des données sensibles.
Vous pouvez toujours créer cette fonction de gestion de connexion distincte et facile à utiliser. Mais déplacez vos identifiants de connexion vers un fichier de configuration séparé.
config.ini :
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Vous pouvez lire la configuration dans votre fichier py de connexion ou la rendre plus globale (c'est-à-dire singleton ?). Si vous souhaitez lire la configuration dans le fichier de connexion :
stockage.py :
import configparser
import MySQLdb.cursors
config = configparser.ConfigParser()
config.read('config.ini')
def connect():
return MySQLdb.connect(host = config['mysqlDB']['host'],
user = config['mysqlDB']['user'],
passwd = config['mysqlDB']['pass'],
db = config['mysqlDB']['db'])
Exemple d'utilisation :
import storage
conn = storage.connect()