使用 SQLAlchemy 連線 Python 中的 PostgreSQL


Python 提供了各種庫,其中之一是 SQLAlchemy,它為資料庫操作提供了一個物件關係對映 (ORM) 系統,包括 PostgreSQL。開發人員使用它來儲存和管理海量結構化資料。透過連線這兩個,我們可以建立更高效、更強大的資料庫。在本文中,我們將學習如何在 Python 中使用 SQLAlchemy 連線 PostgreSQL。

什麼是 SQLAlchemy?

它是一個強大的庫,有助於簡化資料庫操作流程,廣泛應用於 Web 開發和資料分析。它提供諸如連線池、語句快取和負載平衡等高階功能。這些高階功能有助於提高資料庫應用程式的效能。

什麼是 PostgreSQL?

它是一個先進的開源關係資料庫管理系統,以其效能、可擴充套件性和健壯性而聞名。它被用作 Web 應用程式的後端資料庫,並支援多種程式語言。

將 PostgreSQL 連線到 SQLAlchemy 的優勢

以下是將 PostgreSQL 連線到 SQLAlchemy 的優勢:

  • SQLAlchemy 庫的多功能性和靈活性使開發人員能夠輕鬆地與各種資料庫管理系統進行互動。

    因此,開發人員可以在使用不同資料庫時使用相同的介面和程式碼結構。這有助於節省時間和精力。

  • SQLAlchemy 提供了一個物件關係對映 (ORM) 框架,使開發人員能夠使用 Python 類和物件與 PostgreSQL 進行互動。

    這層抽象簡化了與資料庫互動的過程,並有助於開發人員專注於應用程式邏輯而不是資料庫細節。

  • Psycopg2 是一個 Python 庫,它提供了一套工具,可用於使用 Python 與 PostgreSQL 資料庫進行互動。它支援高階 PostgreSQL 功能,例如伺服器端遊標、事務管理和非同步連線。它廣泛應用於 Web 開發、資料分析等需要資料持久化的領域。

先決條件

在繼續操作之前,請確保您的系統中已安裝並執行以下內容。

  • Python 3

  • PostgreSQL 資料庫

  • Psycopg2 和 SQLAlchemy 包

如何安裝所需的 Python 包?

可以使用 pip(Python 的包安裝程式)來安裝 psycopg2 和 SQLAlchemy。在您的系統中開啟命令提示符並執行以下命令。

pip install psycopg2
pip install sqlalchemy
  • 安裝所需的包是第一步。下一步是使用 SQLAlchemy 連線 PostgreSQL。您可以使用 SQLAlchemy 的 create_engine() 函式來建立到 PostgreSQL 資料庫的連線。

  • 將資料庫 URL 傳遞給此函式;它應包含資料庫名稱、使用者名稱、密碼、主機和埠號。

示例

讓我們準備一段程式碼來說明如何使用 create_engine() 連線到 PostgreSQL 資料庫。

from sqlalchemy import create_engine
# for postgreSQL database credentials can be written as 
user = 'username'
password = 'your_password'
host = 'localhost'
port = '5432'
database = 'mydb'
# for creating connection string
connection_str = f’postgresql:// {user}:{password}@{host}:{port}/{database}’
# SQLAlchemy engine
engine = create_engine(connection_str)
# you can test if the connection is made or not
try:
    with engine.connect() as connection_str:
        print('Successfully connected to the PostgreSQL database')
except Exception as ex:
    print(f'Sorry failed to connect: {ex}')

我們首先從 SQLAlchemy 庫匯入函式。然後我們定義了 PostgreSQL 資料庫的憑據。下一步是使用這些憑據建立連線字串。您可以將憑據資訊更改為您資料庫的憑據。

接下來,我們使用 create_engine() 函式建立了一個 SQLAlchemy 引擎物件。因此,此物件表示資料庫連線,並且也可以用於在資料庫上執行 SQL 命令。

使用 SQLAlchemy 連線到 PostgreSQL 後,您可以使用引擎物件的 execute() 方法在資料庫上執行 SQL 命令。

錯誤

在編寫程式碼並執行時,可能會遇到一些錯誤。讓我們瞭解一些常見的錯誤及其解決方案。

  • 其中一個基本的錯誤是匯入錯誤,您可以透過在命令提示符中使用 pip 安裝模組來解決此錯誤。

  • 在執行 SQL 命令時,您可能會遇到錯誤“sqlalchemy.exc.OperationalError: (psycopg2.OperationalError)FATAL:role “username” does not exist”。如果連線字串中的使用者名稱在 PostgreSQL 中不存在,則可能會發生此錯誤。

  • 您可能會遇到模組無法連線到伺服器的操作錯誤。您可以透過檢查網路配置或啟動 PostgreSQL 伺服器來解決此錯誤。

結論

我們可以從本文中得出結論,SQLAlchemy 是一個功能強大的 Python 庫,用於資料庫操作,因為它提供了基於資料操作和資料連線的靈活性。使用 SQL 的 ORM 功能,您可以用 Python 編寫程式碼,以更具表達力的方式與 PostgreSQL 資料庫進行互動。因此,如果您是 Python 開發人員並且正在尋找與應用程式中的資料庫互動的方式,那麼 SQLAlchemy 是一個不錯的選擇。

更新於: 2023年9月13日

5K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告