Django实战(4)——Model层总结以及Django的ORM之于我(ORM的概念,Model的字段,懒加载·链式调用与Queryset)

  • ORM的概念

ORM (Object Relational Mapping)即“对象关系映射"。这么听起来还是比较书本化,比较难懂的。但是说白了,就是我们在models.py文件里定义了那么多的类,最终还是要存放在数据库里,而ORM就是这些类与数据库里数据的对应(或者说是映射)的关系。

当你在views.py里写代码时会用到models.py里定义的各种类(实际上正是有了这些class作为模板,在views.py的编码草并不显得那么复杂)。然后,当views.py里的代码接收到了具体的数据,例如表单数据,int值,一行字符串等等。它会调用事先在models.py定义好的模板,通过这些模板将上面罗列的各种数据传给数据库并存放进去,ORM就是这么一个过程。这一段是对第一段的细讲,1,2段讲的是同个意思。


  • 字段

    字段就是具体实现,有了具体规则,字段告诉系统传入的数据是什么东西,可以粗泛的理解为编程时的int,float这样的类型(实际上它们的工作差不多)下面对每个字段做简单介绍 :

Django实战(4)——Model层总结以及Django的ORM之于我(ORM的概念,Model的字段,懒加载·链式调用与Queryset)_第1张图片


  • Queryset的概念与懒加载和链式调用的概念

懒加载,简单的说当要查询数据库的多个数据时,不使用懒加载的话查询N个数据就要查询数据库N遍。使用懒加载只要查询一遍,这样大大减少了复杂度和查询时间。懒加载在其中的机制就是返回一个queryset队象,而不是所有数据。当要使用是查看queryset对象的内容即可,替代了多次查询数据库的操作。

链式调用,顾名思义链式调用就是执行一个对象中的方法之后得到的结果还是这个对象,这样可以接着执行对象上的其他方法。说这个呢就是告诉你,懒加载使用了链式调用的方式,就懒加载的queryset对象使用的就是链式调用的方式。

而queryset是什么?它本质就是懒加载。


END

总结:这次没有代码,只是涉及了一系列的概念。所以呢,这些概念都十分重要,理解它们可以确保以后看书时不会一直感觉在天书奇谈。

 

你可能感兴趣的:(Python的学习,Django框架的学习)