Het is mogelijk, maar het is om ten minste twee redenen geen goed idee om code en gegevens (alle soorten - configuratie, HTML enz.) te combineren:
- Ontwerp - je krijgt een zogenaamde hoge koppeling . Situatie waarin er veel afhankelijkheden zijn, moeilijk te volgen en je app steeds moeilijker aan te passen.
- Beveiliging - uw inloggegevens komen vroeg of laat terecht in een codeback-uparchief of -repository. Config-bestand kan bovendien worden gecodeerd, py-bestand niet echt. Als het een web-app is, is het gemakkelijker om de toegang tot een enkel configuratiebestand te beperken dan tot alle py-bestanden die gevoelige gegevens kunnen bevatten.
U kunt nog steeds deze afzonderlijke, gebruiksvriendelijke functie voor het afhandelen van verbindingen maken. Maar verplaats uw verbindingsgegevens naar een apart configuratiebestand.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
U kunt de configuratie in uw verbindingspy-bestand lezen of meer globaal maken (dwz singleton?). Als u de configuratie in het verbindingsbestand wilt lezen:
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'])
Gebruiksvoorbeeld:
import storage
conn = storage.connect()