ORM模型类介绍,
所有的软件开发过程中,都会涉及到对象和关系型数据库,在用户层面和业务逻辑层面,程序员编写代码都是面向对象的,当我们对象的信息发生变化的时候,都需要将对应的信息,传到关系型数据库中.而在此之前,需要我们编写对应的SQL语句来创建数据表,
(例如: 创建一个auth_user表,需要定义好每一个字段,给字段设置好对应类型,属性 ,并且给数据表设置主键或唯一键.然后定义好表的存储引擎 ,字符编码)
然后在业务逻辑中,会有很多SQL语句,对表进行增删改查操作
然后在业务逻辑中,会有很多SQL语句,对表进行增删改查操作,
举例子; 通过POST请求提交商品评论信息
python的一大设计思想-_一切事务皆对象
能不能将对数据库的操作,也通过面向对象的方式来实现呢???
--因此就有了 ORM
什么是ORM?
将我们的对象,自动XX化到关系型数据库中,相当于充当业务逻辑层和数据库层的桥梁
那么,在Django中,我们应该如何开发模型类呢?
这就是 Models.py文件的作用!
-Django中,每建一个应用的时候,都会在应用的文件夹下,
自动生成一个 models.py文件,这里就是编写模型类的地方
模型类的优势与劣势:
优势--
开发人员能够专注于业务逻辑的处理,提高开发效率,
以后就不需要在业务逻辑代码中编写原生的SQL语句了,通过操作对象的方式,就能够操作数据库!
劣势--
一定程度上牺牲程序的执行效率,
ORM写的久了,可能会忘了SQL语句
项目中如何取舍? --
复杂的SQL语句,或者数据库层面的功能--使用原生SQL更加方便
提升开发效率 --使用ORM
例如-
在Flask中使用 Sqlalchemy 就像在Django中使用ORM一样方便,执行效率只比原生SQL慢了5%,相对于提升的开发效率,这点性能损耗是可以接受的!