当前位置: 首页 > news >正文

探索 Peewee:轻量级 Python ORM 简明指南

文章目录

  • 探索 Peewee:轻量级 Python ORM 简明指南
      • 主要特点:
      • 安装:
      • 使用示例:
        • 1. 定义模型:
        • 2. 初始化数据库:
        • 3. 数据操作(增、查、改、删):
        • 4. 查询构建器:
        • 5. 迁移(通过 Playhouse 库):
      • 总结:

探索 Peewee:轻量级 Python ORM 简明指南

Peewee 是一个轻量级的 Python ORM(对象关系映射)库,旨在简化数据库操作。它适用于小型到中型应用程序,特别是在需要简洁代码和快速开发的场景中。Peewee 提供了非常简洁的 API,支持 SQLite、PostgreSQL、MySQL 等数据库,且易于学习和使用。

主要特点:

  1. 轻量级:Peewee 以简洁和小巧为设计目标,非常适合小型项目或者原型开发。
  2. 支持多种数据库:Peewee 支持 SQLite、PostgreSQL、MySQL 和其他一些常见的数据库系统。
  3. 自动化表结构生成:Peewee 能够根据模型类自动生成数据库表结构。
  4. 内建查询构建器:Peewee 提供了一个强大的查询构建器,支持复杂的查询操作,同时它的语法简单直观。
  5. 迁移工具:Peewee 有一些第三方工具可以帮助进行数据库迁移(如 playhouse.migrate)。
  6. 易于集成:Peewee 可以与其他 Web 框架和异步库结合使用。

安装:

首先,你可以通过 pip 安装 Peewee:

pip install peewee

使用示例:

以下是一个简单的 Peewee 使用示例。

1. 定义模型:

在 Peewee 中,模型通过继承 peewee.Model 类来定义。每个字段都是 peewee 提供的字段类型,如 CharField, IntegerField, FloatField 等。

from peewee import Model, CharField, IntegerField, SqliteDatabase

# 创建数据库连接
db = SqliteDatabase('example.db')

# 定义模型
class User(Model):
    name = CharField(max_length=100)  # 定义字段
    age = IntegerField()  # 整型字段
    email = CharField(max_length=100)

    class Meta:
        database = db  # 指定数据库连接
2. 初始化数据库:

在进行数据库操作之前,必须先连接数据库并创建表。

# 连接到数据库
db.connect()

# 创建所有模型对应的表
db.create_tables([User])
3. 数据操作(增、查、改、删):

Peewee 提供了简单易用的 API 来执行 CRUD 操作(增、查、改、删)。

# 增:创建一个新用户
user = User.create(name="John", age=30, email="john@example.com")

# 查:获取一个用户(查询条件)
user = User.get(User.name == "John")
print(f"User: {user.name}, Email: {user.email}")

# 查:获取所有用户
users = User.select()
for user in users:
    print(f"{user.name} - {user.age} - {user.email}")

# 改:更新用户数据
user.age = 31
user.save()

# 删:删除用户
user.delete_instance()
4. 查询构建器:

Peewee 提供了丰富的查询功能,可以进行条件查询、排序、聚合等操作。

# 查询:获取所有年龄大于30岁的用户
users = User.select().where(User.age > 30)
for user in users:
    print(f"User: {user.name}, Age: {user.age}")

# 排序:按年龄升序排列
users = User.select().order_by(User.age)
for user in users:
    print(f"User: {user.name}, Age: {user.age}")
5. 迁移(通过 Playhouse 库):

Peewee 不内建迁移工具,但可以使用 playhouse.migrate 扩展来处理数据库迁移。

from playhouse.migrate import SqliteDatabase, migrate

# 定义数据库连接
db = SqliteDatabase('example.db')
migrator = SqliteMigrator(db)

# 添加新字段
with db.atomic():
    migrate(
        migrator.add_column('user', 'phone', CharField(null=True))
    )

总结:

Peewee 是一个非常适合小型和中型项目的轻量级 ORM,具有简洁的 API 和良好的文档支持。它适合那些不需要像 Django 或 SQLAlchemy 那样高度复杂和灵活的功能的开发者。Peewee 易于学习,能够快速上手,并且能完成大部分常见的数据库操作任务。

对于不需要大规模复杂数据库操作的应用,Peewee 是一个非常不错的选择。如果你正在寻找一个简单、快速和易于集成的 ORM,Peewee 会是一个很好的工具。

相关文章:

  • 更改visual studio 2022 默认NuGet包路径
  • 【uni-app】对齐胶囊容器组件
  • 基于SpringBoot实现的宠物领养系统平台功能七
  • 华为guass在dbever和springboot配置操作
  • 大厂出品!三个新的 DeepSeek 平替网站
  • 【AcWing】动态规划-线性DP -选数异或
  • springboot408-基于Java的樱洵宾馆住宿管理系统(源码+数据库+纯前后端分离+部署讲解等)
  • JDK源码系列(二)
  • 第44天:Web开发-JavaEE应用反射机制类加载器利用链成员变量构造方法抽象方法
  • 代码随想录刷题day28|(栈与队列篇:栈)232.用栈实现队列
  • pycharm中配置PyQt6详细教程
  • Turborepo 使用配置
  • 深入探讨Web应用开发:从前端到后端的全栈实践
  • LLaMA-Factory|微调大语言模型初探索(4),64G显存微调13b模型
  • 苹果确认iOS 18.4四月初推出:Apple Intelligence将迎来中文支持
  • MFC开发:如何创建第一个MFC应用程序
  • 将 Vue 项目打包后部署到 Spring Boot 项目中的全面指南
  • Python在实际工作中的运用-基础操作
  • 数据库面试知识点总结
  • 口腔应用AI模型推荐
  • 熊出没!我驻日本札幌总领馆提示中国公民注意人身安全
  • 中美大幅下调超100%关税,印巴四日“战争”复盘|907编辑部
  • 科创板年内第3家!健信超导IPO获受理,拟募资8.65亿
  • 第12届警博会在即:一批便民利企装备亮相,规模创历史新高
  • 中拉论坛第四届部长级会议将举行,外交部介绍情况
  • 中美会谈前都发生了什么?美方为何坐不住了?