用creat_engine()来连接远程SQL Server数据库
时间: 2024-06-11 13:09:30 浏览: 92
在Python中使用create_engine()来连接远程SQL Server数据库,需要使用pyodbc驱动程序和ODBC数据源名称(DSN)。
首先,需要安装pyodbc模块和ODBC驱动程序。可以使用以下命令在命令行中安装pyodbc模块:
```
pip install pyodbc
```
然后,需要创建一个ODBC数据源名称(DSN),以便在Python中访问远程SQL Server数据库。可以按照以下步骤创建ODBC数据源名称(DSN):
1. 在Windows操作系统中,打开“ODBC数据源管理员”(可以在控制面板中找到)。
2. 在“ODBC数据源管理员”窗口中,选择“系统DSN”选项卡。
3. 单击“添加”按钮,选择“SQL Server”驱动程序,并单击“完成”按钮。
4. 在“创建新的数据源”窗口中,输入数据源名称、描述、服务器名称和数据库名称,并指定身份验证方式和登录凭据。单击“下一步”按钮。
5. 在“选择默认数据库”窗口中,选择默认数据库并单击“下一步”按钮。
6. 在“确认”窗口中,单击“测试数据源”按钮以测试连接。如果连接成功,则单击“确定”按钮。
完成以上步骤后,可以使用以下Python代码连接远程SQL Server数据库:
```
from sqlalchemy import create_engine
dsn = 'my_dsn' # 数据源名称(DSN)
user = 'my_username' # 数据库用户名
password = 'my_password' # 数据库密码
host = 'my_server_name' # 数据库服务器名称
database = 'my_database_name' # 数据库名称
engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{database}?driver=ODBC+Driver+17+for+SQL+Server?trusted_connection=yes')
```
在此代码中,使用create_engine()函数创建一个SQLAlchemy引擎对象。连接字符串中的驱动程序名称是“mssql+pyodbc”,用户名、密码、服务器名称和数据库名称是从DSN中获取的,而ODBC驱动程序名称是“ODBC Driver 17 for SQL Server”。
连接字符串还包括一个可选参数“trusted_connection=yes”,用于指定使用Windows身份验证进行身份验证。
完成以上步骤后,就可以使用SQLAlchemy查询远程SQL Server数据库了。例如,可以使用以下代码查询表中的数据:
```
from sqlalchemy import create_engine, Table, MetaData
dsn = 'my_dsn' # 数据源名称(DSN)
user = 'my_username' # 数据库用户名
password = 'my_password' # 数据库密码
host = 'my_server_name' # 数据库服务器名称
database = 'my_database_name' # 数据库名称
engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{database}?driver=ODBC+Driver+17+for+SQL+Server?trusted_connection=yes')
metadata = MetaData()
table = Table('my_table_name', metadata, autoload=True, autoload_with=engine)
result = engine.execute(table.select()).fetchall()
for row in result:
print(row)
```
阅读全文