(15)模型层-什么是ORM
ORM是什么
1、MVC或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动
2、ORM是“对象-关系-映射”的简称
作用是什么:查询数据层次图解,如果操作mysql,ORM是在pymysq之上又进行了一层封装,就是将我们输入的orm对象方法转成mysql的语法去执行数据库,获得数据库的数据在中间的orm转换成对象,完成前后端的交互
PS:所有语言都有orm,不是python独有的
pyhon中主流的orm框架
Django's ORM
优点:
-
易用,学习曲线短
-
和Django紧密集合,用Django时使用约定俗成的方法去操作数据库
缺点:
-
不好处理复杂的查询,强制开发者回到原生SQL
-
紧密和Django集成,使得在Django环境外很难使用
peewee
优点:
-
Django式的API,使其易用
-
轻量实现,很容易和任意web框架集成
缺点:
-
多对多查询写起来不直观
SQLAlchemy
优点:
-
企业级 API,使得代码有健壮性和适应性
-
灵活的设计,使得能轻松写复杂查询
缺点:
-
重量级 API,导致长学习曲线
其它:SQLObject 、Storm 、、、、