什麼是 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,兩個表中可能存在多行。
這些關係表示不同表的欄位可以相互連結的方式。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP