Det er muligt, men det er ikke en god idé at blande kode og data (enhver form - konfiguration, HTML osv.), af mindst to grunde:
- Design - du ender med såkaldt høj kobling . Situation, hvor der er mange afhængigheder, svære at følge, og din app er sværere og sværere at ændre.
- Sikkerhed - dine legitimationsoplysninger ender før eller siden i et eller andet kodebackup-arkiv eller -lager. Konfigurationsfilen kan desuden krypteres, py-filen egentlig ikke. Hvis det er en webapp, er det nemmere at begrænse adgangen til en enkelt konfigurationsfil end til alle py-filer, der kan have følsomme data.
Du kan stadig oprette denne separate, brugervenlige forbindelseshåndteringsfunktion. Men flyt dine forbindelsesoplysninger til en separat konfigurationsfil.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Du kan læse konfigurationen i din forbindelse py-fil eller gøre den mere global (dvs. singleton?). Hvis du ønsker at læse konfigurationen i forbindelsesfilen:
storage.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'])
Eksempel på brug:
import storage
conn = storage.connect()