ORM魔法
阅读 (188918)
分享
ORM魔法
flask作为一款MVC框架,也提供了ORM功能
1、概述
对象-关系-映射
ORM
,全称Object Relational Mapping
,中文叫做对象关系映射,通过ORM
我们可以通过类的方式去操作数据库,而不用再写原生的SQL语句
SQLalchemy提供了各种数据库的支持,为了大多数数据库提供了统一的接口。可以根据不同的业务请求使用不用的数据库
2、原因
随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了
-
SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句
-
很多SQL语句是在业务逻辑中拼出来的,如果有数据库需要更改,就要去修改这些逻辑,这会很容易漏掉对某些SQL语句的修改
-
写SQL时容易忽略web安全问题,给未来造成隐患
3、任务
- 把表映射成类,把行作为实例,把字段作为属性
- 将对象、列表的操作,转换为sql语句
4、优点
- 易用性:使用
ORM
做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰 - 性能损耗小:
ORM
转换成底层数据库操作指令确实会有一些开销。但从实际的情况来看,这种性能损耗很少(不足5%),只要不是对性能有严苛的要求,综合考虑开发效率、代码的阅读性,带来的好处要远远大于性能损耗,而且项目越大作用越明显 - 设计灵活:可以轻松的写出复杂的查询
- 可移植性:封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的
MySQL
、PostgreSQL
和SQLite
。可以非常轻松的切换数据库
需要
登录
才可以提问哦
: