Det är möjligt, men det är inte bra att blanda kod och data (vilket som helst - konfiguration, HTML etc), av minst två anledningar:
- Design - du slutar med så kallad högkoppling . Situation där det finns många beroenden, svåra att följa och din app blir allt svårare att ändra.
- Säkerhet - dina referenser hamnar förr eller senare i något säkerhetskopieringsarkiv eller -förråd. Konfigurationsfilen kan dessutom krypteras, py-filen inte riktigt. Om det är en webbapp är det lättare att begränsa åtkomsten till en enda konfigurationsfil än till alla py-filer som kan ha känsliga data.
Du kan fortfarande skapa denna separata, lättanvända anslutningshanteringsfunktion. Men flytta dina anslutningsuppgifter till en separat konfigurationsfil.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Du kan läsa konfigurationen i din anslutnings-py-fil eller göra den mer global (dvs singleton?). Om du vill läsa konfigurationen i anslutningsfilen:
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'])
Användningsexempel:
import storage
conn = storage.connect()