Published on InterSystems Developer Community (https://community.intersystems.com)

主页 > SQLAlchemy - 将 Python 和 SQL 与 IRIS 数据库一起使用的最简单方法

文章
Hao Ma · 三月 14, 2023 阅读大约需 2 分钟
Open Exchange

SQLAlchemy - 将 Python 和 SQL 与 IRIS 数据库一起使用的最简单方法

介绍

在最近几篇文章中的一些文章中,我谈到了 IRIS 和 Python 之间的类型,很明显,从一侧到另一侧访问对象并不是那么容易。

幸运的是,已经完成了创建SQLAlchemy-iris 的工作(点击链接在 Open Exchange 上查看它),这使得 Python 访问 IRIS 对象的一切变得更加容易,我将展示它的启动器。

谢谢@Dmitry.Maslennikov !

安装中

要安装,只需打开具有管理员权限的终端并输入

pip install sqlalchemy-iris

如果需要,这还将为您安装先决条件。

用法

现在,在 python 文件上,您可以导入模块、连接到数据库并以任何您想要的方式使用 sqlalchemy。如果你觉得舒服,你可以按照以下步骤操作:

  • 从 sqlalchemy 导入“create_engine”并使用字符串“iris://username:password@IP:port/namespace”创建引擎。当然,您可以导入整个模块,但“create_engine”会创建一个 Engine 实例(sqlalchemy.engine,有关更多信息,请单击此处)具有我在这里展示的所有必要子类。
 from sqlalchemy import create_engine engine = create_engine( "iris://_SYSTEM:SYS@localhost:1972/SAMPLE" )
  • 创建连接(sqlalchemy.engine.connection,有关更多信息,请单击此处)以便您可以处理事务、简单执行等。
 conn = engine.connect()

伟大的!现在您已经配置了对数据库的访问。

对于简单的 SELECT 查询,并遍历结果集,请执行以下操作(像往常一样,使用本文中创建的表作为示例):

 query = 'SELECT Name, Age from Sample.PersistentData WHERE Age >= 21 ' result = conn.exec_driver_sql(query)

现在,结果是 CursorResult (sqlalchemy.engine.CursorResult)。您可以在官方文档中查看您可以使用 CursorResult 执行的所有操作。这就是您为简单迭代所做的全部工作:

 print( "Name, Age" ) for row in result: print(row[ 0 ], ", " , row[ 1 ])

稍微格式化一下,您可能会得到如下输出:

您还可以查看官方文档以了解更多详细信息和可能性,现在您知道从哪里开始了。

PS:您还可以从 sqlalchemy 导入“文本”并执行查询

result = conn.execute(text(query))

这将产生完全相同的结果。

结论

您还可以执行 DDL 和任何其他 DML 语句,并且对使用 ORM(对象关系映射)有更大的支持,但由于这只是一个“开始”,我不会进一步。

您想要更多有关 SQLAlchemy 的教程吗?也许下次使用 ORM?
如有任何疑问,请随时与我联系!

#Python #SQL #教程 #InterSystems IRIS #Open Exchange
在 InterSystems Open Exchange 上检查相关应用程序

源 URL:https://cn.community.intersystems.com/post/sqlalchemy-%E5%B0%86-python-%E5%92%8C-sql-%E4%B8%8E-iris-%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%E7%9A%84%E6%9C%80%E7%AE%80%E5%8D%95%E6%96%B9%E6%B3%95