主页 > 大数据 > python orm框架比较?

python orm框架比较?

一、python orm框架比较?

ORM概念

ORM(Object Ralational Mapping,对象关系映射)用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。O R M 技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化 。

Python中常用的ORM

SQLObject

SQLObject是一种流行的对象关系管理器,用于为数据库提供对象接口,其中表为类,行为实例,列为属性。

SQLObject包含一个基于Python对象的查询语言,使SQL更抽象,并为应用程序提供了大量的数据库独立性。

优点:

采用了易懂的ActiveRecord 模式

一个相对较小的代码库

缺点:

方法和类的命名遵循了Java 的小驼峰风格

不支持数据库session隔离工作单元

Storm

Storm 是一个介于 单个或多个数据库与Python之间 映射对象的 Python ORM 。为了支持动态存储和取回对象信息,它允许开发者构建跨数据表的复杂查询。Stom中 table class 不需要是框架特定基类 的子类 。每个table class是 的sqlobject.SQLObject 的子类。

优点:

清爽轻量的API,短学习曲线和长期可维护性

不需要特殊的类构造函数,也没有必要的基类

缺点:

迫使程序员手工写表格创建的DDL语句,而不是从模型类自动派生

Storm的贡献者必须把他们的贡献的版权给Canonical公司

Django's ORM

因为Django的ORM 是紧嵌到web框架的,所以就算可以也不推荐,在一个独立的非Django的Python项目中使用它的ORM。

Django,一个最流行的Python web框架, 有它独有的 ORM。 相比 SQLAlchemy, Django 的 ORM 更吻合于直接操作SQL对象,操作暴露了简单直接映射数据表和Python类的SQL对象 。

优点:

易用,学习曲线短

和Django紧密集合,用Django时使用约定俗成的方法去操作数据库

缺点:

不好处理复杂的查询,强制开发者回到原生SQL

紧密和Django集成,使得在Django环境外很难使用

peewee:

优点:

Django式的API,使其易用

轻量实现,很容易和任意web框架集成

缺点:

不支持自动化 schema 迁移

多对多查询写起来不直观

SQLAlchemy:

SQLAlchemy 采用了数据映射模式,其工作单元 主要使得 有必要限制所有的数据库操作代码到一个特定的数据库session,在该session中控制每个对象的生命周期 。

优点:

企业级 API,使得代码有健壮性和适应性

灵活的设计,使得能轻松写复杂查询

缺点:

工作单元概念不常见

重量级 API,导致长学习曲线

总结

相比其他的ORM, SQLAlchemy 意味着,无论你何时写SQLAlchemy代码, 都专注于工作单元的前沿概念 。DB Session 的概念可能最初很难理解和正确使用,但是后来你会欣赏这额外的复杂性,这让意外的时序提交相关的数据库bug减少到0。在SQLAlchemy中处理多数据库是棘手的, 因为每个DB session 都限定了一个数据库连接。但是,这种类型的限制实际上是好事, 因为这样强制你绞尽脑汁去想在多个数据库之间的交互, 从而使得数据库交互代码很容易调试

二、php orm框架介绍?

ORM(Object Relational Mapping)对象关系映射框架,采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。

ORM是通过使用描述对象和数据库之间映射的元数据,在我们想到描述的时候自然就想到了xml和特性(Attribute).目前的ORM框架中,Hibernate就是典型的使用xml文件作为描述实体对象的映射框架,而大名鼎鼎的Linq则是使用特性(Attribute)来描述的。

三、ORM框架是什么?

1. ORM框架是一种将对象和关系数据库之间的映射进行自动化处理的技术。2. 在传统的数据库操作中,需要手动编写SQL语句进行数据的增删改查操作,而ORM框架可以通过对象关系映射,将对象和数据库表之间的映射关系自动化处理,从而简化了数据库操作的流程,提高了开发效率。3. ORM框架的使用可以大大减少开发人员的工作量,提高了代码的可维护性和可读性,同时也可以降低代码的出错率,提高了系统的稳定性和可靠性。常见的ORM框架有Hibernate、MyBatis等。

四、orm框架与rpc框架的区别?

orm:只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中

rpc:RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

可以说是互不相干的两个框架,没有什么对比性

五、springmvc是orm框架吗?

springmvc不是orm框架,目前主流的orm框架是hibernate和mybatis

六、php orm框架有哪些?

1.Propel是一个适用于PHP5的ORM映射

2.Doctrine是一个PHP的ORM框架

3.EZPDO是一个十分轻量级的PHP ORM框架

4.YORM是一款Yii的第三方ORM插件

5.RedBeanPHP 可以让你用 NoSQL 的语法来使用 ORM 框架。

6.dORM是一个PHP5的ORM框架

七、go orm框架好用吗?

作为一种对象关系映射的工具,ORM框架可以简化开发人员对数据库的操作,提高代码的可维护性和可读性。

它可以帮助开发人员抽象出数据层的细节,让开发人员更专注于业务逻辑的实现。

同时,ORM框架还提供了数据库迁移、事务管理等功能,让开发人员可以更方便地进行数据库操作。但是,ORM框架的使用也需要注意一些问题,如性能问题、复杂查询的实现等。因此,在使用ORM框架时需要根据具体的业务需求进行选择和使用。

八、orm框架是什么以及优点?

orm框架是指对象关系映射,(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

ORM技术优点:         1.提高了开发效率。由于ORM可以自动对Entity对象与数据库中的Table进行字段与属性的映射,所以我们实际可能已经不需要一个专用的、庞大的数据访问层。         2.ORM提供了对数据库的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据。

九、orm框架好还是自己写好?

要看具体情况,如果是比较简单的业务可以选择自己封装一些类库,如果是牵扯一些复杂的逻辑,并且是团队多人开发,也建议使用流行的orm框架,原因有一下几点:

1. 维护成本

如果是团队多人使用,则需要进行文档编写、维护,时间成本比较高

2. 安全性问题

流行的orm框架,在有众多人使用的过程中,问题会尽早出现,官方一般也会进行更新,可以保证安全性更高

3. 众人拾柴火焰高

由于是流行的orm,一定会有社区圈子,大家集思广益,可以设计出更完善的功能以及解决问题

总而言之,要看自己的情况与实际场景

十、go语言最好用的orm框架?

GORM 是 Go 语言最好用的 ORM 框架,它支持诸如 MySql、Postgresql 等多种数据库,并且能够让程序员以非常简单的方式来操作不同的数据库。

GORM 拥有强大的查询功能和可扩展性,有助于快速协调 SQL 和你的 Go 应用程序之间的数据传输,非常适合用于快速开发。

相关推荐