Cha*_*ffy 17

顾名思义,ORM是一个对象关系映射器:它的目的是将数据库关系表示为Python对象.

核心是查询构建器.它的目的是提供一种编程方法来生成SQL查询(和DDL) - 但这些查询的结果只是元组(有一点额外的魔力),而不是你自己的对象(在这种情况下,"你的"是"应用程序开发人员"的设计.

通常,如果您尝试以编程方式构建查询(特别是基于仅在运行时可用的信息),您应该使用核心.如果您正在尝试构建应用程序MVC样式并希望数据库支持的对象成为"模型",那么您应该使用ORM.


bSr*_*bSr 13

SQLAlchemy-ORM 是在 SQLAlchemy-Core 之上开发的。我们可以在下面看到 SQLAlchemy 的基本架构。

SQLAlchemy的基本架构

因此,如果我们愿意,我们可以在创建引擎后使用 SQLAlchemy-Core 执行原始 SQL 查询。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()
Run Code Online (Sandbox Code Playgroud)

如果您想要 SQLAlchemy 的 ORM 功能,则必须使用 ORM 部分。您将能够在其中创建将被视为表的 python 类,并且该类的属性将被视为列。除此之外,SQLAlchemy 将提供更多方法来使对象关系映射变得更容易。