zoukankan      html  css  js  c++  java
  • 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%,相对于提升的开发效率,这点性能损耗是可以接受的!

      

  • 相关阅读:
    一本通1559跳跳棋
    一本通1558聚会
    一本通1555【例 4】次小生成树
    P1880 [NOI1995]石子合并
    P2066 机器分配
    P2073 送花
    P1886 滑动窗口
    P1637 三元上升子序列
    P1533 可怜的狗狗
    P1631 序列合并
  • 原文地址:https://www.cnblogs.com/goddog1024/p/11221282.html
Copyright © 2011-2022 走看看