ORM是什么?
在介绍Python下的两个ORM框架(Django和SQLAlchemy)的区别之前,我们首先要充分了解ORM框架的用途。
ORM代表对象关系映射。ORM中的每个单词解释了他们在实际项目中的用途:
对象(Object):这部分表示哪个对象或者在哪种编程语言下使用这个框架,例如Python。
关系(Relational):这部分表示你正在使用的RDBMS数据库(关系数据库管理器系统)。有许多流行的关系数据库,你可能使用以下这些:MSSQL、MySQL、Oracle、PostgreSQL、MariaDB、PerconaDB、TokuDB。关系数据库中最常见的是它们的关系结构(表,列,键,约束等)。
映射(Mapping):最后一部分表示前面两个部分之间的桥接和连接,即对象和数据库表。
因此,可以得到这样的结论:ORM的作用是将编程语言与数据库进行关联,以简化依赖于数据的应用程序的创建过程。
Django和SQLAlchemy的比较
活动记录与数据映射器
Django ORM使用了活动记录的实现:你能在大多数的ORM库中看到这个实现。这意味着数据库中的每一行记录都直接映射到代码中的一个对象,反之亦然。 ORM框架(如Django)不需要预定义模式来使用代码中的属性。你可以直接使用它们,因为框架可以通过查看数据库模式(schema)来“理解”结构。此外,你可以将记录保存到数据库中,因为它映射可以到表中的某个特定行。
SQLAlchemy使用了数据映射器的实现:在使用这种实现时,数据库结构和对象结构之间是分离的(它们不像Active Record实现中那样的一一对应)。在大多数情况下,

本文探讨了Python的两大ORM框架Django和SQLAlchemy的差异,包括活动记录与数据映射器的概念,自动创建主键和自动提交的处理方式,以及两者在复杂查询和数据库支持上的特点。Django适合简单CRUD操作,SQLAlchemy在处理复杂业务规则时更具优势。社区规模和学习曲线也是选择时需要考虑的因素。
最低0.47元/天 解锁文章
74

被折叠的 条评论
为什么被折叠?



