PYTHON 幫助

psycopg2(開發人員操作說明)

psycopg2 庫是 Python 程式語言中一個受歡迎的 PostgreSQL 資料庫適配器。 它以高效、線程安全以及完整實現 Python DB API 2.0 規範而聞名。 讓我們探索其功能並查看一些代碼範例。 在本文稍後的部分,我們將了解IronPDF,這是一個來自Iron Software的 PDF 生成庫。

介紹

Psycopg2 被設計為高效且安全,非常適合高度多執行緒的應用程序。 其一些主要功能包括:

  • 執行緒安全性:多個執行緒可以共享相同的連線,具有處理多執行緒應用程式的能力,這些應用程式會創建和銷毀大量的游標。
  • 客戶端和伺服器端游標:高效處理大型數據集。
  • 非同步通信和通知:支持非同步操作。
  • COPY 支援:使用 COPY TO 和 COPY FROM 高效批量加載數據。
  • 自適應系統:自動將 Python 類型適應到 PostgreSQL 類型;該套件自動轉換為匹配的 PostgreSQL 數據類型。
  • Unicode 與 Python 3 友好:完全支援 Unicode 和 Python 3。

安裝

您可以使用 pip 安裝 psycopg2

pip install psycopg2
pip install psycopg2
SHELL

或者,您可以在本地使用setup.py從源包。 您可以從這裡的源代碼庫獲取來源包:

python setup.py build
sudo python setup.py install
py
PYTHON

對於不需要編譯器或外部庫的獨立包,您可以使用psycopg2-binary包:

pip install psycopg2-binary
pip install psycopg2-binary
SHELL

基本用法

這裡有一個簡單的例子來讓你開始使用 psycopg2。

連接到數據庫

首先,您需要連接到您的 PostgreSQL 資料庫:

import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
    dbname="your_dbname",
    user="your_username",
    password="your_password",
    host="your_host",
    port="your_port"
)
# Create a cursor object
cur = conn.cursor()
py
PYTHON

執行查詢

您可以使用游標物件執行 SQL 查詢:

# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
    print(row)
py
PYTHON

插入資料

以下是如何在表格中插入數據:

# Insert data into a table
cur.execute(
    "INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
    ("value1", "value2")
)
# Commit the transaction
conn.commit()
py
PYTHON

關閉連接

完成後不要忘記關閉游標和連線:

# Close the cursor and connection
cur.close()
conn.close()
py
PYTHON

進階功能

使用COPY進行批量加載

COPY 命令對於批量加載資料非常有用:

# Use COPY to load data from a file
with open('data.csv', 'r') as f:
    cur.copy_from(f, 'your_table', sep=',')
conn.commit()
py
PYTHON

非同步通知

您可以接收來自資料庫的非同步通知:

# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
    notify = conn.notifies.pop(0)
    print("Got NOTIFY:", notify.payload)
py
PYTHON

介紹 IronPDF

psycopg2 (開發人員如何使用): 圖1 - IronPDF: Python PDF 庫

IronPDF 是一個強大的 Python 函式庫,旨在使用 HTML、CSS、圖像和 JavaScript 創建、編輯和簽署 PDF。 它提供商用級性能且佔用較低的記憶體資源。 主要功能包括:

HTML 轉換為 PDF:

將 HTML 文件、HTML 字串和 URL 轉換為 PDF。 例如,使用 Chrome PDF 渲染器將網頁呈現為 PDF。

跨平台支持:

兼容各種 .NET 平台,包括 .NET Core、.NET Standard 和 .NET Framework。 它支援 Windows、Linux 和 macOS。

編輯和簽署:

設置屬性、通過密碼和權限添加安全性,並對您的PDF應用數字簽名。

頁面模板和設定:

自訂 PDF 的頁眉、頁腳、頁碼和可調整的邊距。 支持響應式版面和自訂紙張尺寸。

標準合規性:

遵循 PDF 標準,如 PDF/A 和 PDF/UA。 它支持 UTF-8 字符編碼並處理圖像、CSS 和字體等資產。

使用 IronPDF 和 psycopg2 生成 PDF 文件

import psycopg2
from ironpdf import * 
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
    dbname="demo",
    user="postgres",
    password="postgres",
    host="localhost",
    port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
    INSERT INTO users (id, name, age)
    VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall() 
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
    print(row)
    content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
py
PYTHON

程式碼說明

該腳本演示了如何使用psycopg2與PostgreSQL資料庫進行交互、資料操作(創建、插入、檢索)以及與IronPDF集成進行文件生成。

  1. 資料庫連接:使用 psycopg2 連接到名為 "demo" 的本地 PostgreSQL 資料庫,指定用戶認證和資料庫主機詳細信息。

  2. 表格創建:定義並執行一條 SQL 語句,以創建一個名為 users 的表格(如果尚未存在)。該表格包括欄位 id(整數,主鍵)、name(文本,非空),以及 age(整數)。

  3. 資料插入:使用參數化查詢(`userData1`、`userData2`、`userData3`)將三行資料插入至 `users` 表。 每個元組包含 `id`、`name` 和 `age` 的值。

  4. 交易管理:在表創建和數據插入後提交交易,以確保變更被保存在資料庫中。

  5. 資料擷取:執行 SELECT 查詢以從 `users` 表中提取所有行(`SELECT * FROM users`)並檢索結果(`rows`)。

  6. PDF 生成:使用 IronPDF 從 HTML 內容生成 PDF 文件。 HTML 內容包括一個標題和從 users 表中獲取的數據的格式化表示。

  7. 文件保存:將生成的 PDF 文件保存為當前目錄中的 "Demopsycopg2.pdf"。

  8. 連線關閉:此功能關閉資料庫游標(cur)和資料庫連線(conn),以釋放資源並確保妥善清理。

    為了例外處理,您可以將腳本包裹在 try-catch 區塊中,以確保在某個查詢失敗或連接失敗時,所有錯誤操作都得到處理。

輸出

psycopg2(對開發人員的運作方式):圖2 - 範例控制台輸出

PDF

psycopg2(對開發人員的運作方式):圖 3 - 使用 psycopg2 儲存和檢索數據的範例輸出,同時 IronPDF 生成 PDF 報告

IronPDF 授權

IronPDF 運行在 Python 授權金鑰上。 IronPDF for Python 提供免費試用許可金鑰,讓用戶在購買前測試其豐富的功能。

在使用 IronPDF 套件之前,將授權密鑰放置在腳本的開頭:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
py
PYTHON

結論

Psycopg2 是一個強大且靈活的函式庫,用於在 Python 中與 PostgreSQL 資料庫進行互動。 它的全面功能集和高效設計使其成為簡單和複雜數據庫操作的絕佳選擇。 IronPDF 是一個強大的 Python 程式包和函式庫,能直接從 Python 應用程式中創建、操作和渲染 PDF 文件。 它提供了全面的功能,能從 HTML 內容生成 PDF,並可無縫整合現有的網頁技術。 使用 IronPDF,開發人員可以高效自動生成報告、發票和其他文件,從而提高生產力和用戶體驗。 其功能包括互動式 PDF 表單、文本提取、合併和拆分 PDF,以及添加安全功能如密碼保護。 IronPDF 的多功能性和易用性使其成為開發人員在其 Python 專案中實現 PDF 生成和操作功能的寶貴工具。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
sqlite3 Python(如何為開發人員運作)
下一個 >
crc32c Python(開發者如何使用)

準備開始了嗎? 版本: 2025.5 剛剛發布

查看許可證 >