PYTHON 幫助

peewee Python((運作原理:開發人員指南))

Kannaopat Udonpant
坎納帕特·烏頓潘
2025年2月26日
分享:

介紹

Peewee 是一個小巧且具表現力的ORM旨在使與資料庫在 Python 中的互動變得簡單。 它輕量級、易於使用,而且足夠強大以支持複雜的查詢或數據庫架構。 Peewee 支援 SQLite、MySQL 和 PostgreSQL,具有直觀的語法,因此非常容易學習,在學生和專業人士中非常受歡迎。

IronPDF 是一個 Python 程式庫,使得可以對 PDF 文件進行全面的端到端操作:創建、讀取、編輯和管理。 使用 Python .NET,可以將 IronPDF 與 Python 應用程式結合,從而獲得非常強大的 PDF 生成能力。 因此,這種組合在生成基於從資料庫檢索的數據的 PDF 報告時非常有用。

此整合將 Peewee 與 IronPDF 結合,讓 Python 開發者可以創建應用程式,從而實現高效的資料庫管理和查詢,同時生成動態且數據驅動的 PDF 文件。 這種組合為從數據檢索到報告生成創建了一個完美的工作流程,因此提供了一套非常強大的工具集,用於創建專業和自動化的文檔。 從簡單的業務報告如發票開始,到複雜的報告,Peewee 和 IronPDF 共同為任何 Python 應用程式中的資料庫驅動 PDF 生成提供了完美的解決方案。

PeeWee Python 是什麼?

Peewee是一個小型且富有表達力的 ORM,用於 Python,旨在簡化與數據庫的操作。 它輕鬆創建模型,並使創建常見查詢變得容易,例如在資料庫中搜索、添加、更新和刪除多個記錄。 Peewee 可以用於許多不同的使用案例,其原因在於它支持不同的後端:SQLite、MySQL 和 PostgreSQL。

Peewee 的一個優點是其簡單和容易使用。 對於開發者來說,以類別的形式在 Python 中建立模型非常容易,而所有對數據庫的查詢都由簡單的 API 以 Python 代碼形式進行。 儘管如此簡單,Peewee 非常強大,因為它支援複雜的查詢、連接和複雜的關係,並支援連線池。

peewee Python((如何運作:開發者指南)):圖1 - Peewee

靈活性和極簡設計使 Peewee 對於小型專案和大型應用程式非常有用,尤其是在使用方便和快速開發至關重要的情況下。 處理複雜的資料庫交互而涉及的樣板代碼極少,這使其成為任何 Python 開發者都非常吸引的 ORM。

Peewee Python 的功能

Peewee 是一個輕量級且表達能力強的 Python ORM 庫,用於輕鬆地與數據庫互動。 以下列出了其若干重要功能:

簡單易用:Peewee 具有非常容易和直觀的 API 可用。 開發人員可以輕鬆地使用它來定義具有所有常規屬性的模型,並使用 Python 代碼輕鬆地與資料庫互動。

多種資料庫: 支援 SQLite、MySQL、PostgreSQL 和 CockroachDB。

表達式查詢語法: Peewee 擁有一個乾淨且表達力強的語法來查詢數據庫,我們可以使用相同的查詢操作,如 Select、Create、Update 和 Delete 查詢,讓開發者使用 Python 的結構來撰寫複雜查詢。

模型定義:在Peewee中,將資料庫模型定義為Python類別。 類別中的字段與資料庫列匹配。 此定義確保如果對數據庫架構進行任何更改,則相應的更改也會應用於 Python 代碼,反之亦然。

關係: 支援所有關係——包括外鍵、一對一和多對多關係——這是在建模複雜數據時所需的。

連接池:Peewee 內建連接池功能,通过重用數據庫連接來提高性能。

事務:原子性事務確保一組資料庫操作被執行——但如果其中任何一個操作失敗,所有操作都會回滾以維持資料的有效性。

信號和鉤子:Peewee 提供信號和鉤子,以便在某些事件之前或之後實現自定義行為,例如儲存或刪除記錄。

遷移:此外,這會將第三方庫與主要的 Peewee-migrate 集成,從而管理數據庫模式的遷移。 這將有助於平穩過渡數據庫的各個版本。

可擴展性: Peewee 可以根據具體的應用需求,通過自定義字段、查詢或其他幾種功能輕鬆擴展。

Playhouse 擴展:此模組附有多種擴展功能,包括 SQLite 的全文搜索、一些特定於 PostgreSQL 的功能,以及一些用於管理連接的工具。

非同步支持:aiopeewee 是一個擴展,使 Peewee 支援適合高性能應用程式的非同步操作。

建立和配置Peewee

以下步驟將幫助你在任何 Python 專案中開始使用 Peewee,並使用 Peewee ORM 設置一個簡單的應用程式。

安裝 Peewee

首先,使用 pip 安裝 Peewee:

pip install peewee
PYTHON

定義您的模型

確保在名為 app.py 的 Python 文件中定義您的資料庫模型。 在這裡,為了簡化,我們將使用SQLite做同樣的事情。

from peewee import SqliteDatabase, Model, CharField, IntegerField, ForeignKeyField
# Define the database connection
db = SqliteDatabase('my_database.db')
# Define a base model class
class BaseModel(Model):
    class Meta:
        database = db
# Define a User model
class User(BaseModel):
    username = CharField(unique=True)
    age = IntegerField()
# Define a model instance programmatically or we can define foreign or primary key
class Tweet(BaseModel):
    user = ForeignKeyField(User, backref='tweets')
    content = CharField()
# Create the tables
db.connect()
db.create_tables([User, Tweet])
PYTHON

插入資料

現在讓我們向資料庫中新增一些資料。

def insert_data():
    # Insert a new user
    alice = User.create(username='Alice', age=30)
    # Insert some tweets for Alice
    Tweet.create(user=alice, content='Hello world!')
    Tweet.create(user=alice, content='I love Peewee!')
    bob = User.create(username='Bob', age=25)
    Tweet.create(user=bob, content='This is Bob')
insert_data()
PYTHON

查詢資料

現在,讓我們編寫一些代碼來從我們的數據庫中提取所有這些信息。

def query_data():
    # Query to select multiple records
    for user in User.select():
        print(f'User: {user.username}, Age: {user.age}')
    # instance matching query
    for tweet in Tweet.select().join(User).where(User.username == 'Alice'):
        print(f'{tweet.user.username} tweeted: {tweet.content}')
query_data()
PYTHON

以下是所有上述程式碼的合併截圖。

peewee Python((開發人員指南中的工作方式):圖2 - 查詢數據輸出

入門

首先,您需要導入 Peewee 以使用與物件關聯映射相關的功能,以及 IronPDF 用於生成 PDF。 本教程假設您已經具備 Python 的知識,並了解如何通過 Python .NET 和 Peewee 設置 IronPDF 並使其在 Python 中工作。 以下步驟將引導您如何使用Peewee創建一個簡單的應用程序來與數據庫進行交互,並使用IronPDF生成PDF報告。

什麼是 IronPDF?

IronPDFPython 模組是一個用於創建、編輯和閱讀 PDF 的高級函式庫。 它提供了大量的功能,使程式設計師能夠執行許多可編程的 PDF 活動。 這包括將 HTML 文件轉換為 PDF 文件,以便編輯現有的 PDF。 這將使生成高品質的PDF格式報告更加靈活和簡單。 動態生成和處理 PDF 的程式可以從中受益。

peewee Python((它是如何工作的:開發者指南)):圖 3 - IronPDF

HTML 轉 PDF

任何時間的 HTML 數據都可以輕鬆使用 IronPDF 的功能轉換為 PDF 文件。 此外,它還為用戶提供了一個平台,可以直接從在線材料中創建極具創新性和引人注目的PDF出版物,同時利用HTML5、CSS3和JavaScript的所有最新功能。

生成和編輯PDF文件

您可以使用編程語言生成包含文字、圖片、表格等的新 PDF 文件。 您可以提前開啟準備好的文件並使用 IronPDF 編輯它們,添加更多個性化內容。 PDF 文件中的任何內容都可以隨時添加、更改或移除。

複雜設計和樣式

由於其本身具有 PDF 的內容樣式,複雜的佈局可以通過多種字體、顏色和其他設計元素進行控制,使這一切成為可能。 此外,JavaScript 無法應用於處理 PDF 中的動態材料,以實現 HTML 內容的輕鬆呈現。

安裝 IronPDF

可以使用 Pip 安裝 IronPDF。安裝命令如下所示:

pip install ironpdf
PYTHON

將 Peewee 與 IronPDF 結合

Peewee ORM 可以被創建和配置,數據可以插入,並且可以通過將所有階段結合到 app.py 文件來生成 PDF 報告。

from peewee import SqliteDatabase, Model, CharField, IntegerField, ForeignKeyField
import os
from ironpdf import *     import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Define the database connection
db = SqliteDatabase('my_database.db')
# Define a base model class
class BaseModel(Model):
# class Meta
    class Meta:
        database = db
#creating single model instance
class User(BaseModel):
    username = CharField(unique=True)
    age = IntegerField()
# Define a Tweet model
class Tweet(BaseModel):
    user = ForeignKeyField(User, backref='tweets')
    content = CharField()
# Create the tables
db.connect()
db.create_tables([User, Tweet])
def insert_data():
    # Insert a new user
    alice = User.create(username='Alice', age=30)
    # Insert some tweets for Alice
    Tweet.create(user=alice, content='Hello world!')
    Tweet.create(user=alice, content='I love Peewee!')
    bob = User.create(username='Bob', age=25)
    Tweet.create(user=bob, content='This is Bob')
def generate_pdf():
    # model SQL query to fetch data from the database
    users = User.select()
    tweets = Tweet.select().join(User)
    # Prepare HTML content for the PDF
    html_content = """
    <html>
    <head><title>Data Report</title></head>
    <body>
        <h1>User Data Report</h1>
        <h2>Users</h2>
        <ul>
    """
    for user in users:
        html_content += f"<li>{user.username}, Age: {user.age}</li>"
    html_content += "</ul><h2>Tweets</h2><ul>"
    for tweet in tweets:
        html_content += f"<li>{tweet.user.username} tweeted: {tweet.content}</li>"
    html_content += "</ul></body></html>"
    # Create a PDF document using IronPDF
    renderer = ChromePdfRenderer()
    pdf = renderer.RenderHtmlAsPdf(html_content)
    # Save the PDF file
    output_path = os.path.join(os.getcwd(), "Data_Report.pdf")
    pdf.SaveAs(output_path)
    print(f"PDF Report saved to {output_path}")
if __name__ == '__main__':
    insert_data()
    generate_pdf()
PYTHON

此程式碼說明如何使用 Python .NET 將 IronPDF(Python 的 PDF 創建庫)與 Peewee(Python 的輕量級 ORM)相結合。 使用 Peewee,首先創建一個 SQLite 數據庫,並定義擁有適當字段的 User 和 Tweet 模型。 在建立數據庫表之後,將範例數據新增到它們中。 然後,使用IronPDF的ChromePdfRenderer類別,generate_pdf函式檢索此數據並將其轉換為HTML字串,然後將其呈現為PDF。

peewee Python((它是如何運作的:開發者指南)):圖 4 - 控制台輸出

PDF 存儲在當前工作目錄中。 使用Peewee在資料庫管理方面的優勢以及IronPDF來製作優雅的文檔PDF 文件此配置使 Python 應用程式中的資料庫互動和自動 PDF 報告輸出變得順暢。

peewee Python((如何運作:開發者指南)):圖 5 - PDF 輸出

結論

這將為 Python 開發人員提供一個可靠的選擇,使其能夠在將 IronPDF 集成到 Peewee 後管理資料庫並生成動態 PDF 文件。 透過易於使用的ORM功能,Peewee使資料庫的互動變得更簡單,讓開發人員能夠輕鬆構建和更改資料庫結構。 另一方面,IronPDF 提供一個套件,使得將 HTML 內容轉換為高品質的 PDF 報告變得更加容易。

因此,這種組合在使用從資料庫檢索到的動態數據生成自動報告的應用程式中將非常有用。 開發人員可以利用 Peewee 定義模型和執行查詢的簡便性,結合 IronPDF 強大地創建 PDF,來有效提升效率和生產力。 Peewee 和 IronPDF 結合在一起,成為處理各種應用需求的靈活選擇,並在 Python 開發環境中以多種方式運作。 這些可能包括從發票到特殊文件的報告。

結合IronPDF與其他Iron Software產品將幫助為提供複雜解決方案的用戶提供卓越的軟體解決方案給客戶。 這將為了你的利益,簡化提升專案和流程運作的任務。

除了核心功能之外,IronPDF 還提供詳細的文檔、活躍的社群和定期的更新周期。 基於上述前幾段的信息,開發人員可以將 Iron Software 視為現代軟體開發項目的可靠夥伴。 為了了解這個庫的所有功能,IronPDF 為開發者提供免費試用。 在接下來的日子裡,您將確保您花費的 $749 許可證費用得到充分的價值。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
scikit-image Python(工作原理:開發者指南)
下一個 >
Seaborn Python(開發人員指南:運作原理)

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

查看許可證 >