阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ORM魔法

115次阅读
没有评论

共计 643 个字符,预计需要花费 2 分钟才能阅读完成。

ORM 魔法

flask 作为一款 MVC 框架,也提供了 ORM 功能

1、概述

对象 - 关系 - 映射

ORM,全称 Object Relational Mapping,中文叫做对象关系映射,通过ORM 我们可以通过类的方式去操作数据库,而不用再写原生的 SQL 语句

SQLalchemy 提供了各种数据库的支持,为了大多数数据库提供了统一的接口。可以根据不同的业务请求使用不用的数据库

2、原因

随着项目越来越大,采用写原生 SQL 的方式在代码中会出现大量的 SQL 语句,那么问题就出现了

  • SQL 语句重复利用率不高,越复杂的 SQL 语句条件越多,代码越长。会出现很多相近的 SQL 语句

  • 很多 SQL 语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些 SQL 语句的修改

  • 写 SQL 时容易忽略 web 安全问题,给未来造成隐患

3、任务

  1. 把表映射成类,把行作为实例,把字段作为属性
  2. 将对象、列表的操作,转换为 sql 语句

4、优点

  1. 易用性:使用 ORM 做数据库的开发可以有效的减少重复 SQL 语句的概率,写出来的模型也更加直观、清晰
  2. 性能损耗小:ORM转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足 5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显
  3. 设计灵活:可以轻松的写出复杂的查询
  4. 可移植性:封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的 MySQLPostgreSQLSQLite。可以非常轻松的切换数据库
正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-05-26发表,共计643字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中