前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Web框架中的ORM框架

Web框架中的ORM框架

作者头像
Python碎片公众号
发布于 2021-02-26 07:28:23
发布于 2021-02-26 07:28:23
2K0
举报

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 框架完成了模型类对象到数据库之间的映射。不管使用哪种数据库,SQLiteMYSQL、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 的便利,在很多项目中,这种便利对开发人员来说是非常有必要的,性能可以采用其他方式来优化。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 碎片 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档