Могу ли я использовать файл конфигурации для хранения параметров строки подключения?

У меня есть скрипт, который подключается к базе данных. Я хотел бы вытащить сервер, пользователя, пароль, базу данных из скрипта и поместить его в файл конфигурации. Я успешно извлекаю значения из файла конфигурации. Проблема, с которой я сталкиваюсь, заключается в том, что pymssql.connect терпит неудачу, когда у меня есть переменные в синтаксисе. Я вставил свой пример кода ниже. Это возможно?

###database connection  
config = configparser.ConfigParser()  
config.read('test.config')  
server = config['DEFAULT']['SQLServer']  
db = config['DEFAULT']['Database']  
user = config['DEFAULT']['User']  
password = config['DEFAULT']['Password']  

###this works  
####conn = pymssql.connect(host='Server1', user='Joe',password='MyPass', database='MyDB')

###this doesn't
try:
    conn = pymssql.connect(host=server, user=user,password=password, database=db)
except Exception as e:
    print(str(e))
    sys.exit()

person VonHugenstein    schedule 30.09.2014    source источник
comment
Запустите это в оболочке и убедитесь, что значения, которые вы прочитали из файла конфигурации, точны.   -  person Celeo    schedule 30.09.2014
comment
Ценности - это то, что я ожидаю от них. Когда я запускаю его из консоли, я получаю следующее: «Server1», «Joe», «MyPass», «MyDB». Могут ли эти дополнительные кавычки вызвать проблему?   -  person VonHugenstein    schedule 30.09.2014
comment
Не могли бы вы вставить полную ошибку?   -  person Celeo    schedule 30.09.2014
comment
Из консоли: ››› conn = pymssql.connect(server,user,password,db) Traceback (последний последний вызов): File pymssql.pyx, строка 595, в pymssql.connect (pymssql.c:9251) File < i>mssql.pyx, строка 1829, в _mssql.connect (_mssql.c:19198) Файл _mssql.pyx, строка 597, в _mssql.MSSQLConnection.__init_ (_mssql.c:5868) _mssql.MSSQLDriverException: Connection к базе данных не удалось по неизвестной причине.   -  person VonHugenstein    schedule 30.09.2014
comment
Во время обработки вышеуказанного исключения возникло другое исключение: Трассировка (последний последний вызов): Файл ‹pyshell#15›, строка 1, в ‹модуле› conn = pymssql.connect(сервер,пользователь,пароль,db) Файл pymssql. pyx, строка 602, в pymssql.connect (pymssql.c:9370) pymssql.InterfaceError: Ошибка подключения к базе данных по неизвестной причине.   -  person VonHugenstein    schedule 30.09.2014
comment
Я нашел один два вопроса с той же ошибкой, что и вы; надеюсь, они помогут.   -  person Celeo    schedule 30.09.2014
comment
Я не верю, что они применимы. Я работаю в Windows, а не в Free TDS   -  person VonHugenstein    schedule 30.09.2014
comment
Завершающие пробелы в файле конфигурации?   -  person uselpa    schedule 30.09.2014


Ответы (1)


Вот как я получил свойства подключения и подключенную базу данных сервера sql.

**App.ini file**

[CoreContext]
host=sservername.database.windows.net
user=dbuser@servername
password=password
database=DeltaXCore



**Connection.py file**

appConfig = ConfigParser.ConfigParser()
appConfig.read("App.ini")
ConnectionString.HOST = appConfig.get("CoreContext", "host")
CoreConnectionString.USER = appConfig.get("CoreContext", "user")
CoreConnectionString.PASSWORD = appConfig.get("CoreContext", "password")
CoreConnectionString.DATABASE = appConfig.get("CoreContext", "database")



pymssql.connect(host=objdeltaxConnectionString.HOST, user=objdeltaxConnectionString.USER,password=objdeltaxConnectionString.PASSWORD, database=objdeltaxConnectionString.DATABASE)
person Akshay Joy    schedule 26.11.2016