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?
如有任何疑问,请随时与我联系!