gpt4 book ai didi

python - 在 Python 中使用 SQLAlchemy 连接到 Azure 数据库

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:59 29 4
gpt4 key购买 nike

我正在尝试使用 Python 中的 SQLAlchemy 连接到 Azure 数据库。

我的代码如下:

engine_azure = \
create_engine('mssql+pyodbc://{Server admin login}:{password}@{Server name}.database.windows.net:1433/{AdventureWorksLT}', echo=True)

enter image description here

我收到以下消息:

C:\ProgramData\Anaconda3\lib\site-packages\sqlalchemy\connectors\pyodbc.py:92: SAWarning: No driver name specified; this is expected by PyODBC when using DSN-less connections
"No driver name specified; "

然后我运行以下代码:

print(engine_azure.table_names())

我收到以下消息:

DBAPIError: (pyodbc.Error) ('01S00', '[01S00] [Microsoft][ODBC Driver Manager] Invalid connection string attribute (0) (SQLDriverConnect)')

最佳答案

您的连接字符串存在 2 个问题:

  1. 根据 SQLAlchemy documentation :使用传递精确 pyodbc 字符串时,分隔符必须进行 URL 转义

  2. 并且您也没有指定 sql 驱动程序名称。

您可以使用下面的代码,它在我这边工作得很好:

import pyodbc
from sqlalchemy import create_engine
import urllib

params = urllib.parse.quote_plus \ # urllib.parse.quote_plus for python 3
(r'Driver={ODBC Driver 13 for SQL Server};Server=tcp:yourDBServerName.database.windows.net,1433;Database=dbname;Uid=username@dbserverName;Pwd=xxx;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;')
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
engine_azure = create_engine(conn_str,echo=True)

print('connection is ok')
print(engine_azure.table_names())

测试结果: enter image description here

对于连接字符串,您可以通过转到 Azure 门户 -> 您的数据库 -> 连接字符串(在本例中选择 ODBC)来获取它: enter image description here

关于python - 在 Python 中使用 SQLAlchemy 连接到 Azure 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53704187/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com