首页 > 代码库 > Django——Django中的QuerySet API 与ORM(对象关系映射)

Django——Django中的QuerySet API 与ORM(对象关系映射)

首先名词解释。

ORM:

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。

对象关系映射(Object-Relational Mapping)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。 传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型创建正确标准化了的结构。 典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须能以简单的单元分析信息,对样本数据进行处理。ORM专门被设计为改进这种联系。

简单的说:ORM相当于中继数据。

简单理解:ORM就像把不同特性的数据库抽象为一个概念上的数据库,因此不同数据库可以在某种编程语言或框架(django)下统一管理,这样便于数据库的移植/管理/设计/理解,但同时因为不直接执行SQL语句,因此速度会变慢。

QuerySet:

Query,是查询的意思,为了在数据库中寻找某一特定文件、网站、记录或一系列记录,由搜索引擎或数据库送出的消息。

QuerySet API:是Django提供给我们的,通过ORM技术管理数据库的一组接口。

其中包括:

  • Methods that return new QuerySets
  • Methods that do not return QuerySets
  • Field lookups
  • Aggregation functions

四种不同类型的API。

参考网站:https://docs.djangoproject.com/en/1.7/ref/models/querysets/#filter

Django——Django中的QuerySet API 与ORM(对象关系映射)