SQLAlchemy Core和SQLAlchemy ORM在用途上有什么不同
发布于 2017-04-09 06:18:44
顾名思义,ORM是一个对象关系映射器:其目的是将数据库关系表示为Python对象。
核心是一个查询构建器。它的目的是提供一种编程方法来生成SQL查询(和DDL) --但是这些查询的结果只是元组(有一点额外的魔力),而不是您自己设计的对象(在本例中,“您的”就是“应用程序开发人员的”)。
通常,如果您试图以编程方式构建查询(特别是基于仅在运行时可用的信息),则应该使用核心。如果您正在尝试构建MVC样式的应用程序,并且希望数据库支持的对象成为“模型”,那么您应该使用ORM。
发布于 2019-07-08 16:06:54
SQLAlchemy-ORM是在SQLAlchemy-Core之上开发的。如下所示,我们可以看到SQLAlchemy的基本架构。
因此,如果需要的话,我们可以在创建engine之后使用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()
如果您需要SQLAlchemy的ORM特性,则必须使用ORM部分。在那里您将能够创建python类,这些类将被视为表,而类的属性将被视为列。除此之外,SQLAlchemy还将提供更多的方法来简化对象关系映射。
https://stackoverflow.com/questions/43300886
复制相似问题