Python 中的 ORM

Vaibhav Vaibhav 2022年5月17日
Python 中的 ORM

ORM 或物件關係對映使用物件導向的範例來建立、查詢和操作儲存在資料庫中的資料。它是實際資料庫和用於資料庫管理的應用程式之間的軟體層。

ORM 允許我們使用程式語言定義資料庫表,使用物件和方法執行查詢,以及使用物件導向的程式設計運算元據。在後臺,所有查詢邏輯都轉換為 SQL 或結構化查詢語言等效查詢。儘管翻譯後的查詢對於特定操作可能是最好的,也可能不是,但 ORM 已被證明對於大規模的實際應用程式具有良好的效能。

ORM 使表管理成為一項非常無縫的任務。通常,表是使用 ORM 中的一個類來表示的;因此,更新、重用、擴充套件和維護它們變得很容易。ORM 可以自動處理很多東西,讓開發人員可以更專注於應用程式的功能。

多年來,技術得到了巨大的發展,如今社群大量使用的大多數程式語言都為它們開發了 ORM。一些程式語言的列表中有多個 ORM。在本文中,我們將討論市場上可用於 Python 程式語言的 ORM。

Python 中的 ORM

Python 是跨多個領域(如 Web 開發、資料科學、機器學習、應用程式開發等)中增長最快和使用率最高的語言之一。它得到了一個由不斷改進、優化和開發的優秀程式設計師和開發人員組成的龐大社群的支援。為該語言構建新的東西,例如庫和框架。

儘管市場上有許多 Python 程式語言的 ORM,但我們在本文中只關注三個 ORM,因為並非每個 ORM 都是健壯、可擴充套件、開發良好、遵循最先進的實踐、高效、優化、並提供效能。

本文將討論三個 ORM,即 peeweeSQLAlchemyStorm。這三個 ORM 在行業中被廣泛使用並提供了強大的功能。

peewee

peewee ORM 是一個用於 Python 的簡單、富有表現力的小型 ORM。由於它是一個小型 ORM,因此適用於小型應用程式。這個 ORM 支援 SQLite 資料庫、MySQL 資料庫、PostgreSQL 資料庫和 cockroachdb 資料庫。這個 ORM 是在 Python 3.6 中開發的,可以與 Python 2.7+3.4+ 一起使用。

要了解有關 peewee ORM 的更多資訊,請參閱官方 GitHub 儲存庫以獲取文件和程式碼片段此處

SQL 鍊金術

SQLAlchemy ORM 是一個強大的 Python SQL 工具包。此 ORM 以優化的方式為 Python 開發人員提供了靈活性和 SQL 的全部潛力。此 ORM 專為使用 Python 進行高效和高效能的資料庫訪問而設計。SQLAlchemy ORM 是用於大型應用程式的最佳 ORM 之一。Yelp!、DropBox、reddit、Survey Monkey 和 OpenStack 專案等組織在其技術堆疊中使用 SQLAlchemy ORM。

通常,SQLAlchemy ORM 與社群中的 Flask Web 框架一起使用。大型資料庫帶來效能問題。此 ORM 有助於輕鬆高效地對大型資料庫執行復雜的 CRUD(建立、讀取、更新和刪除)查詢。

要了解有關 SQLAlchemy ORM 的更多資訊,請參閱官方文件此處

Storm ORM

Storm ORM 是一個乾淨且輕量級的 API 或應用程式程式設計介面,它為 Python 程式語言提供 SQL 支援。Storm ORM 的學習曲線很短,適用於大規模應用。它是一種快速靈活的 ORM,可提供對資料庫的高效訪問,並簡化對大型資料庫執行復雜查詢的任務。此 ORM 支援使用相同的 Python 程式碼連線到多個資料庫。

要了解有關 Storm ORM 的更多資訊,請參閱官方文件此處

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

LinkedIn GitHub