Je to možné, ale není to dobrý nápad míchat kód a data (jakéhokoli druhu – konfigurace, HTML atd.), a to minimálně ze dvou důvodů:
- Design – skončíte u takzvané vysoké spojky . Situace, kdy existuje mnoho závislostí, je těžké je sledovat a vaši aplikaci je stále obtížnější upravit.
- Zabezpečení – vaše přihlašovací údaje dříve nebo později skončí v nějakém záložním archivu kódu nebo úložišti. Konfigurační soubor může být navíc zašifrován, py soubor ve skutečnosti ne. Pokud se jedná o webovou aplikaci, je snazší omezit přístup k jednomu konfiguračnímu souboru než ke všem souborům py, které mohou obsahovat citlivá data.
Stále můžete vytvořit tuto samostatnou, snadno použitelnou funkci pro manipulaci s připojením. Přesuňte však přihlašovací údaje pro připojení do samostatného konfiguračního souboru.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Konfiguraci si můžete přečíst v souboru py připojení nebo ji udělat globálnější (tj. singleton?). Pokud si chcete přečíst konfiguraci v souboru připojení:
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'])
Příklad použití:
import storage
conn = storage.connect()