PYTHON 幫助

psycopg2(開發人員操作說明)

發佈 2024年8月13日
分享:

psycopg2 該庫是受歡迎的PostgreSQL資料庫適配器,用於Python編程語言。它以其效率、線程安全性以及完全實現Python DB API 2.0規範而聞名。讓我們來探索它的特性並看看一些代碼範例。稍後在本文中,我們將學習關於 IronPDF,來自 的 PDF 生成庫 IronSoftware.

簡介

Psycopg2 設計高效且安全,適合大量多線程應用程式。其一些主要功能包括:

  • 線程安全:多個線程可以共享相同的連接—能夠處理創建和銷毀大量遊標的多線程應用程式。
  • 客戶端和服務端遊標:高效處理大型數據集。
  • 非同步通信和通知:支持非同步操作。
  • COPY 支持:使用 COPY TO 和 COPY FROM 高效地批量加載數據。
  • 適配系統:自動將 Python 類型適配到 PostgreSQL 類型;該套件會自動轉換為匹配的 PostgreSQL 數據類型。
  • Unicode 和 Python 3 友好:全面支持 Unicode 和 Python 3。

安裝

您可以安裝 psycopg2 使用 pip:

pip install psycopg2

或者,您可以在本地使用 setup.py 來設置。您可以從原始碼庫中獲取原始碼包。 這裡:

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

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

pip install psycopg2-binary

基本用法

這是一個簡單的示例,幫助你入門使用 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()
PYTHON

執行查詢

您可以使用 cursor 物件執行 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)
PYTHON

插入數據

這是將數據插入表中的方法:

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

關閉連線

完成後別忘了關閉游標和連線:

# Close the cursor and connection
cur.close()
conn.close()
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()
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)
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")
PYTHON

代碼說明

該腳本演示了使用 `psycopg2` 與 PostgreSQL 數據庫的互動及數據操作 (創建, 插入, 檢索),並與 `IronPDF` 進行整合以生成文檔。

  1. 數據庫連接:使用 `psycopg2` 連接到名為 "demo" 的本地 PostgreSQL 數據庫,指定用戶身份驗證和數據庫主機詳細信息的憑據。

  2. 表創建:定義並執行一個 SQL 語句來創建一個名為 `users` 的表格(如果它尚不存在)。該表有 `id` 列。 (整數, 主鍵), `name` (文字,不為 null),和 age (整數).

  3. 數據插入:使用參數化查詢將三行數據插入到users表中 (`用戶資料1`, `用戶資料2`, `用戶資料3`). 每個元組包含 `id`、`name` 和 `age` 的值。

  4. 事務管理:在表格創建和數據插入後提交事務,以確保更改保存到數據庫中。

  5. 數據檢索:執行 SELECT 查詢以獲取所有行 (`SELECT * FROM users`) 從 `users` 資料表中檢索結果 (`行`).

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

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

  8. 關閉連接:此功能關閉資料庫游標。 (`cur`) 和數據庫連接 (連線) 釋放資源並確保正確清理。

為了處理異常,您可以將腳本包裝在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"
PYTHON

結論

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

< 上一頁
sqlite3 Python(如何為開發人員運作)
下一個 >
crc32c Python(開發者如何使用)

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

免費 pip 安裝 查看許可證 >