SQLAlchemy Core和SQLAlchemy ORM在目的上有什么区别?
ORM,即对象关系映射器:其目的是将数据库关系表示为Python对象。
它的核心是一个查询构建器。其目的是提供编程方式来生成SQL查询(和DDL)--但这些查询的结果仅是元组(带有一些额外的魔法),而不是自己设计的对象(在这种情况下,“您”是“应用程序开发人员”)。
一般来说,如果您试图以编程方式构建查询(特别是基于仅在运行时可用的信息),则应该使用核心。如果您想按MVC方式构建应用程序,并希望数据库支持的对象成为“模型”,则应该使用ORM。
SQLAlchemy-ORM是在SQLAlchemy-Core的基础上开发的。我们可以看到SQLAlchemy的基本架构如下。
因此,如果我们想要在创建engine之后执行原始SQL查询,我们可以使用SQLAlchemy-Core。 SQLAlchemy引擎对象提供了一组方法来执行基本操作,如connect(),execute()等。例如:engine = create_engine('mysql://scott:tiger@localhost/test')
connection = engine.connect()
result = connection.execute("select username from users")
for row in result:
print("username:", row['username'])
connection.close()