在 Python 实现的 Web 框架中,通过 API 接口来访问后端的视图函数,视图函数对数据库中的数据进行处理然后返回给前端。
在这个过程中,视图函数不是直接通过 SQL 来操作数据库,而是通过模型类的对象属性或对象方法来操作数据库,这就是 ORM 带来的便利。
一、ORM 简介
ORM(Object-Relational Mapping),直接翻译成中文就是对象关系映射。
从字面意思即可理解,ORM 是模型对象到关系数据库数据的映射。
ORM 的映射关系是通过 ORM 框架来实现的,ORM 框架是用于实现 ORM 技术的程序,ORM框架有很多,不同语言、不同 Web 框架使用的 ORM 框架是不相同的。
在 Python 的常用 Web 框架 Flask、Django 中,都已经内置了 ORM 框架,所以在使用 Flask 和 Django 等框架开发时,默认就已经有 ORM 框架可以使用了。
当调用模型类对象的方法时,ORM 框架会帮我们生成对应的 SQL 语句,然后对数据库进行增删改查操作。对数据库进行操作后,ORM 框架会将修改后的数据映射到模型类对象的属性中。
所以,使用 ORM,只要调用模型类对象的方法,即可操作数据库了。
二、ORM 框架的作用
ORM 框架完成了模型类对象到数据库之间的映射。不管使用哪种数据库,SQLite、MYSQL、Oracle等,ORM 都可以将对象的方法转换成 SQL 语句,然后对数据库操作。
使用 ORM 框架,不需要直接面向数据库编程,而是定义模型类,通过类和类对象就能操作它所对应的数据表中的数据。
ORM框架可以根据我们设计的类自动帮我们生成数据库中的表,省去了我们自己在数据库中建表的过程。
配置好数据库连接信息,定义模型类,执行数据库迁移后,就可以通过类和对象完成数据增删改查操作。
三、ORM 的优点
ORM 对数据库操作进行了封装,使用起来很方便,也有很多优点:
1. 在开发过程中,只需要面向对象编程即可,不需要面向数据库编程。
2. 对数据库的所有操作,ORM 都转化成了对类属性和类方法的操作。
3. 不用编写操作数据库的 SQL 语句。
4. ORM 实现了数据模型与数据库的解耦,对数据库的操作进行了封装,避免了不同数据库操作上的差异,不需要关注用的是什么数据库,MySQL、Oracle 等都一样。
5. 在开发过程中,通过简单的配置就可以轻松更换数据库,简单方便。
具有这些优点,所以 ORM 框架非常实用,很多编程语言的 Web 框架中都内置了 ORM 框架。
四、ORM 的缺点
因为 ORM 框架对数据库的操作进行了封装,多了转换的过程,所以有一些性能损失:
1. 在通过模型类操作数据库时,相比较直接使用 SQL 语句操作数据库,会有性能损失。
2. 通过模型类进行查询操作时,数据库中的查询结果要先转化成对象,在映射过程中也有性能损失。
不过这些性能损失相对于 ORM 带来的便利,还是选择 ORM 的便利,在很多项目中,这种便利对开发人员来说是非常有必要的,性能可以采用其他方式来优化。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有