新手指南:Python 與 PostgreSQL 的強力橋樑——psycopg 驅動程式

更新日期: 2024 年 12 月 10 日

本文為 Django 連接 PostgreSQL 基學教學,第 1 篇

  1. 新手指南:Python 與 PostgreSQL 的強力橋樑——psycopg 驅動程式 👈 所在位置
  2. 新手指南:Django 與 PostgreSQL 的資料庫設定與密碼管理

在開發 Python 應用程式時,經常需要與資料庫互動,而 PostgreSQL 是一個功能強大的關係型資料庫管理系統。

為了讓 Python 能夠高效地與 PostgreSQL 資料庫進行溝通,我們需要一個專用的驅動程式——psycopg

本篇文章將帶您了解 psycopg 的基本概念、如何與 Django 整合,並提供實際操作範例,幫助您快速上手。


psycopg 是什麼?

概念簡介

psycopg 是 Python 與 PostgreSQL 互動的驅動程式,提供穩定且高效能的方式來連接和操作資料庫。

主要功能

  • 支援執行各類 SQL 查詢(如 SELECTINSERT)。
  • 支援 PostgreSQL 的進階功能,包括事務管理、JSON 資料類型、陣列操作和游標(Cursor)。
  • 適合多執行緒環境,為高效能應用程式提供支持。

目前最新版本為 psycopg3,它是 psycopg2 的升級版,支援更多現代化功能(如非同步操作)。


Django 與 PostgreSQL 的連接

Django 是一個高效能的 Python 網頁框架,內建 ORM(物件關聯映射),能讓開發者以 Python 語法操作資料庫。

Django 預設透過 psycopg 驅動程式與 PostgreSQL 進行連接。

安裝 psycopg 驅動程式

在您的開發環境中安裝 psycopg。可以選擇安裝 psycopg2 或更新的 psycopg3

# 安裝 psycopg2
pip install psycopg2

# 或安裝 psycopg3
pip install "psycopg[binary]"

配置 Django 的資料庫設定

在 Django 專案的 settings.py 文件中,設定 PostgreSQL 資料庫的連接資訊:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',  # 使用 PostgreSQL 驅動程式
        'NAME': 'your_database_name',              # 資料庫名稱
        'USER': 'your_database_user',              # 使用者名稱
        'PASSWORD': 'your_password',               # 密碼
        'HOST': 'localhost',                       # 資料庫伺服器位置
        'PORT': '5432',                            # 資料庫埠號(默認為 5432)
    }
}

測試連接

檢查 Django 是否成功連接到資料庫:

  1. 遷移資料庫結構
    執行以下命令,確保 Django 的內建資料表(如 auth_user)被正確建立: python manage.py migrate
  2. 啟動伺服器測試應用
    如果能正常啟動伺服器並運行,表示 Django 已成功連接到 PostgreSQL。

使用 ORM 操作資料庫

Django 的 ORM 提供高效的資料庫操作功能,以下是基本範例:

插入資料

from myapp.models import MyModel

# 插入一筆資料
MyModel.objects.create(name="Example", value=42)

查詢資料

# 查詢資料
records = MyModel.objects.filter(value=42)
print(records)

psycopg 的運作方式

當 Django 與 PostgreSQL 互動時,psycopg 負責處理 Django ORM 與資料庫之間的低層次溝通:

  1. Django 指定 ENGINE='django.db.backends.postgresql',使用 psycopg 驅動程式。
  2. 當執行 ORM 操作時,Django 會生成 SQL 語句並透過 psycopg 傳送到 PostgreSQL。
  3. PostgreSQL 執行查詢,並將結果返回給 psycopg,再由 Django 封裝為 Python 資料結構供使用。

psycopg3 的進階特性

psycopg3psycopg2 的升級版本,具備以下優勢:

  • 非同步操作:適合高併發應用。
  • 靈活配置:可根據需求進行擴展。
  • 與 psycopg2 相容:易於遷移現有專案。

如果您的應用需要高效能或非同步支援,可以考慮使用 psycopg3

pip install "psycopg[binary]"

總結

  • psycopg 是 Python 與 PostgreSQL 之間的橋樑,提供高效穩定的資料庫操作能力。
  • Django 利用 psycopg 作為驅動程式,讓開發者能通過 ORM 以簡單方式操作資料庫。
  • 使用步驟:
    1. 安裝 psycopg 驅動程式。
    2. 配置 settings.py 資料庫連接。
    3. 測試連接並開始操作資料庫。

如果您需要更高效的操作,可考慮使用 psycopg3

透過 psycopg,Python 與 PostgreSQL 的整合變得簡單高效,是開發現代應用程式的首選工具之一!

Similar Posts