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

news/2025/2/23 17:50:59

文章目录

  • 探索 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 等。

python">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. 初始化数据库:

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

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

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

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

python"># 增:创建一个新用户
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 提供了丰富的查询功能,可以进行条件查询、排序、聚合等操作。

python"># 查询:获取所有年龄大于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 扩展来处理数据库迁移。

python">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 会是一个很好的工具。


http://www.niftyadmin.cn/n/5863638.html

相关文章

Python----PyQt开发(PyQt高级:手搓一个音乐播放器)

一、效果展示 二、设计PyQt界面 本次ui界面设置用到了水平和垂直布局 2.1、设置ui窗口显示大小与位置 self.setWindowTitle(音乐播放器) # 设置窗口标题self.setGeometry(800, 300, 800, 800) # 设置窗口大小和位置 2.2、创建显示歌曲列表控件 # 创建显示歌曲列表的控件 …

uniapp 整合openlayers 编辑图形文件并上传到服务器

引入openlayer依赖 import Map from ol/Map.js // OpenLayers的主要类,用于创建和管理地图 import View from ol/View.js // OpenLayers的视图类,定义地图的视图属性 import TileLayer from ol/layer/Tile.js// OpenLayers的瓦片图层类 import…

verilog中等难度设计实践与ALU设计

Verilog中等难度部分设计实践(含ALU算术逻辑单元的设计) verilog的中等部分根据Deepseek给出的大纲理应包括时序逻辑verilog设计实践和组合逻辑verilog组合设计实践两个部分。 时序逻辑verilog设计和实践 在 Verilog 中,时序逻辑通常通过 …

计算机考研复试上机07

14、数据结构 1)二叉树 1.常用操作 struct TreeNode{int data;TreeNode *leftChild;TreeNode *rightChild; }; //前序遍历 void PreOrder(TreeNode *root){if(root == NULL) return;visit(root->data);PreOrder(root->leftChild);PreOrder(root->rightChild);ret…

提效10倍:基于Paimon+Dolphin湖仓一体新架构在阿里妈妈品牌业务探索实践

1. 业务背景 阿里妈妈品牌广告数据包括投放引擎、下发、曝光、点击等日志,面向运筹调控、算法特征、分析报表、诊断监控等应用场景,进行了品牌数仓能力建设。随着业务发展,基于Lambda架构的数仓开发模式,缺陷日益突出:…

Windows 上编译 mebedtls 的鸿蒙库

mebedtls 地址:https://github.com/Mbed-TLS/mbedtls 准备工作: clone mebedtls 仓库到本地(tag: mbedtls-2.26.0)鸿蒙工具链(SDK version: v5.0.5) 编译文件修改: 对 CMakeLists.txt 进行修改,主要是关闭了以下几个选项 ENABLE_P…

Spring Boot Validation 接口校验:从零到掌握

在开发 Web 应用时,数据校验是不可忽视的一部分。无论是注册用户信息、提交表单数据,还是处理业务逻辑,数据的有效性和完整性都需要得到保证。Spring Boot 提供了强大的验证功能,基于 Hibernate Validator 框架,通过注…

11.Docker 之分布式仓库 Harbor

Docker 之分布式仓库 Harbor Docker 之分布式仓库 Harbor1. Harbor 组成2. 安装 Harbor Docker 之分布式仓库 Harbor Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,由 VMware 开源,其通过添加一些企业必需的功能特性,例…