什么是 Django ORM?
ORM 代表对象关系映射。ORM 的主要目标是在应用程序中的数据库和模型之间发送数据。它映射了数据库和模型之间的关系。因此,ORM 将对象属性映射到表的字段。使用 ORM 的主要优点是它使整个开发过程变得快速且无错误。从本质上讲,它消除了编写 SQL 代码的需要。
假设有一个带有某些属性的 Python 对象 student,如下所示。
Model student: Id Rollno Name department
在应用程序的数据库中,有一个表,其中包含模型的名称以及这些属性作为字段。
表 student -
ID | ROLLNO | NAME | DEPARTMENT |
---|---|---|---|
1 | 022 | Tutorialspoint | cse |
要保存在这些字段中的数据将由 ORM 自动完成,开发人员无需为此编写 SQL 代码。
ORM 的优点
与传统方法相比,ORM 有一些好处。主要优点是,当使用 ORM 时,如果需要,更容易更改数据库。其他一些优点包括它提供快速开发并使项目更具可移植性。
SQL 在不同的数据库中差异很大,这给开发人员带来了问题。由于 SQL 用于创建数据解释所需的类和对象,因此使用各种数据库的不同 SQL 处理大量数据对开发人员来说变得很困难。为了克服硬编码数据库条目的问题,开发了 ORM 的概念。
ORM 自动根据定义的模型或方案创建数据库,这意味着开发人员无需了解数据库中使用的 SQL。
Django ORM
Django 配备了一个 ORM,它是当今行业中最好的 ORM 之一。它与 Django 框架紧密耦合,并且非常高效。Django 的 ORM 以其处理中低复杂度查询和中大型数据集的能力而闻名。迁移是 Django ORM 的另一个有用功能。
另一个流行的数据库工具包,通常用作 Django 的 ORM 的替代品是 SQLAlchemy。对于许多问题陈述,它优于 Django ORM。尽管如此,开发人员可以选择 SQLAlchemy 或 Django ORM。Django ORM 有时会在不必要时生成更大更复杂的查询,这会导致性能下降。
数据库的主要用途是在需要时存储和检索数据。Django ORM 使用 Querysets 来实现此功能。Queryset 是模型中存在的对象列表。我们可以使用 Querysets 来过滤、排列和管理我们的数据。它们的主要目的是使查询检索更快更容易。
表字段之间的关系
抽象是处理数据时的一个主要问题,Django ORM 提供了一个易于使用的抽象级别。ORM 会将对象的属性自动关联到相应的表字段。数据库中不同模型的字段之间的关系如下所示。
表字段之间有 3 种关系。
一对一 - 在这里,两个表之间存在一对一的关系。对于表 1 中的每一行,表 2 中都存在一行。
一对多 - 在这里,两个表之间存在一对多的关系。对于表 1 中的每一行,表 2 中可能存在多行。
多对多 - 在这种关系中,对于一个 ID,两个表中可能存在多行。
这些关系表示不同表的字段可以相互链接的方式。