Възможно е, но не е добра идея да смесвате код и данни (от всякакъв вид - конфигурация, HTML и т.н.) поради поне две причини:
- Дизайн – в крайна сметка получавате така нареченото високо свързване . Ситуация, в която има много зависимости, които трудно се следват и приложението ви е все по-трудно за модифициране.
- Сигурност – вашите идентификационни данни рано или късно се озовават в някакъв архив или хранилище за архивиране на код. Конфигурационният файл може да бъде допълнително криптиран, py файлът не всъщност. Ако е уеб приложение, е по-лесно да ограничите достъпа до един конфигурационен файл, отколкото до всички py файлове, които могат да имат чувствителни данни.
Все още можете да създадете тази отделна, лесна за използване функция за управление на връзката. Но преместете идентификационните си данни за връзка в отделен конфигурационен файл.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Можете да прочетете конфигурацията във вашия py файл на връзката или да го направите по-глобален (т.е. singleton?). Ако искате да прочетете конфигурацията във файла за връзка:
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'])
Пример за употреба:
import storage
conn = storage.connect()