Как я могу передать значения переменных конфигурации в команду pyodbc connect?

У меня есть .ini(файл конфигурации), где я упомянул имя сервера, имя базы данных, имя пользователя и пароль, с помощью которых я могу подключить свое приложение к MSSQL.

self.db = pyodbc.connect(
    'driver={SQL Server};server=homeserver;database=testdb;uid=home;pwd=1234')`

соответствующие данные, упомянутые выше, оператор подключения теперь находится в config.ini

self.configwrite = ConfigParser.RawConfigParser()
configread = SafeConfigParser()
configread.read('config.ini')

driver = configread.get('DataBase Settings','Driver')
server = str(configread.get('DataBase Settings','Server'))
db = str(configread.get('DataBase Settings','Database'))
user = str(configread.get('DataBase Settings','Username'))
password = str(configread.get('DataBase Settings','Password'))'

Как я могу передать эти переменные в операторе подключения pyodbc?

Я пробовал это:

self.db = pyodbc.connect('driver={Driver};server=server;database=db;uid=user;pwd=password')

Но я получаю сообщение об ошибке.


person Prasanth    schedule 10.04.2012    source источник
comment
Чтобы добавить переменную в строку в Python, вам нужна буква «f» перед строкой. Думаю, именно поэтому их называют f-струнами. self.db = pyodbc.connect(f'driver={driver};server={server};database={db};uid={user};pwd={password}')   -  person aturc    schedule 17.04.2021


Ответы (3)


self.db = pyodbc.connect('driver={%s};server=%s;database=%s;uid=%s;pwd=%s' % ( driver, server, db, user, password ) )

%s используется для включения переменных в строку

переменные помещаются в строку в порядке их следования после %

person cptPH    schedule 10.04.2012

Другие параметры для функции connect:

# using keywords for SQL Server authentication
self.db = pyodbc.connect(driver=driver, server=server, database=db,
                         user=user, password=password)

# using keywords for Windows authentication
self.db = pyodbc.connect(driver=driver, server=server, database=db,
                         trusted_connection='yes')    
person Bryan    schedule 10.04.2012

Смешивание строк и входной переменной в строка подключения sql с использованием библиотеки pyodbc - Python вдохновлен этим ответом

`conn=pyodbc.connect('Driver={SQL Server};'
                    'Server='+servername+';'
                    'Database=master;'
                    'UID=sa;'
                    'PWD='+pasword+';'
                    )`
person Ahmet keskin    schedule 17.04.2021