PYTHON帮助

peewee Python ((运作原理:开发人员指南))

Kannaopat Udonpant
坎那帕·乌东攀
2025年二月26日
分享:

介绍

Peewee 是一个小巧而富有表现力的ORM旨在简化在 Python 中与数据库交互的过程。 它轻量、易于使用,并且足够自信以支持复杂的查询或数据库模式。 Peewee 支持 SQLite、MySQL 和 PostgreSQL,并具有直观的语法,使其非常容易学习,因此在学生和专业人士中非常受欢迎。

IronPDF 是一个 Python 库,可实现对 PDF 文档的全面端到端操作:创建、读取、编辑和管理。 通过使用 Python .NET,可以在 Python 应用程序中使用 IronPDF,从而获得非常强大的 PDF 生成能力。 因此,这种组合在生成基于从数据库检索的数据的PDF报告时非常有用。

此集成将Peewee与IronPDF结合在一起,以便Python开发人员能够创建应用程序,实现高效的数据库管理和查询,同时生成动态数据驱动的PDF文档。 这种组合为从数据检索到报告生成准备了完美的工作流程,因此提供了一套非常强大的工具集,用于创建专业和自动化文档。 从发票等简单的商业报告开始,到复杂的报告,Peewee 和 IronPDF 共同为任何 Python 应用程序中的基于数据库的 PDF 生成提供了完美的解决方案。

PeeWee Python 是什么?

皮威是一个小型的、富有表现力的 Python ORM,旨在简化与数据库的交互。 它可以轻松创建模型,并使在数据库中创建常见查询(例如搜索、添加、更新和删除多个记录)变得容易。 Peewee 可以用于许多不同的用例,原因是它支持不同的后端:SQLite、MySQL 和 PostgreSQL。

Peewee 的一个值得喜欢的地方是它的简单和易用性。 开发人员可以非常轻松地在 Python 中将模型创建为类,而所有针对数据库的查询都通过简化的 API 以 Python 代码的形式进行。 尽管如此简单,Peewee 依然非常强大,因为它支持复杂查询、连接和复杂关系,并支持连接池。

peewee Python((工作原理:开发人员指南)):图 1 - Peewee

灵活性和极简设计使Peewee在小型项目和大型应用程序中都非常有用,在这些应用程序中,易用性和快速开发变得至关重要。 通过极少的样板代码处理复杂的数据库交互,使其成为任何Python开发者的有吸引力的ORM。

Peewee Python 的特性

Peewee 是一个轻量级的表达性 ORM 库,使 Python 可以轻松与数据库交互。 它的一些重要功能如下:

简单易用:Peewee 具有非常简单直观的 API。 开发人员可以使用它轻松定义具有所有正常属性的模型,并使用Python代码轻松与数据库交互。

多种数据库: 支持SQLite、MySQL、PostgreSQL和CockroachDB。

富有表现力的查询语法:Peewee具有简洁而富有表现力的查询数据库语法,我们可以使用相同的查询操作,如 Select、Create、Update 和删除查询,允许开发人员使用符合 Python 风格的结构编写复杂的查询。

模型定义: 在Peewee中,数据库模型被定义为Python类。 类中的字段与数据库列相匹配。 这个定义确保如果数据库模式发生任何类型的更改,相应的更改也会在Python代码中进行,反之亦然。

关系: 它支持所有关系——包括外键、一对一和多对多关系——在建模复杂数据时所需。

连接池: Peewee 内置了连接池,以通过重复使用数据库连接来提高性能。

事务: 原子事务确保一组数据库操作得以执行,但是如果其中任何一个操作失败,所有操作都会回滚以保持数据的有效性。

信号和钩子: Peewee 提供信号和钩子,用于在某些事件(如保存或删除记录)之前或之后实现自定义行为。

迁移: 此外,这还与主要的第三方库 Peewee-migrate 集成,从而管理数据库模式迁移。 这将有助于数据库版本的平稳过渡。

可扩展性:Peewee 可以通过自定义字段、查询或其他一些功能轻松扩展,以满足具体应用的需求。

Playhouse 扩展: 该模块附带各种 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,以及用于生成PDF的IronPDF。 本教程假设您已经具备Python的知识,并了解如何通过Python .NET和Peewee在Python中设置IronPDF。 以下步骤将引导您通过使用Peewee与数据库交互来创建一个简单的应用程序,并使用IronPDF生成PDF报告。

什么是IronPDF?

"(《世界人权宣言》)IronPDFPython 模块是一个高级库,用于创建、编辑和读取 PDF。 它提供了大量功能,使程序员能够通过PDF执行许多可编程活动。 这包括将HTML文件转换为PDF文件,以便编辑现有PDF。 这将使其更加灵活,且更容易以PDF格式生成优秀的报告。 动态生成和处理PDF的程序可以利用这一点。

peewee Python((它是如何工作的:开发人员指南)):图3 - IronPDF

HTML 转换为 PDF

任何时间的任何 HTML 数据都可以通过 IronPDF 的功能轻松转换为 PDF 文档。 它进一步为用户提供一个平台,可以利用HTML5、CSS3和JavaScript的所有最新功能,直接从在线材料创建极具创新性和引人注目的PDF出版物。

生成和编辑 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(一种用于创建 PDF 的 Python 库)与 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开发人员提供一个可靠的选项,来管理数据库并生成动态PDF文档,一旦将IronPDF集成到Peewee中。 通过易于使用的ORM功能,Peewee简化了数据库交互,使开发者能够更轻松地构建和更改数据库方案。 另一方面,IronPDF 有一个包,可以更轻松地将 HTML 内容转换为高质量的 PDF 报告。

因此,这种组合将在使用从数据库检索的动态数据生成自动报告的应用程序中非常有用。 开发人员可以利用 Peewee 定义模型和执行查询的简便性,以及 IronPDF 强大的 PDF 创建功能,有效提升效率和生产力。 Peewee和IronPDF的结合在Python开发领域内通过多种方式灵活地处理字符串,以满足各种应用需求。 这些可能包括从开票到特殊文档的报告。

组合IronPDF与其他铁软件这些产品将帮助为提供复杂解决方案的客户提供卓越的软件解决方案。 这将为您带来好处,简化提升项目和程序整体运作的任务。

除了核心功能外,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 刚刚发布

查看许可证 >