Skip to content

适用虚谷数据库版本

v12.10.13



适用虚谷数据库版本

v12.10.13


peewee 使用手册 ​

📄字数 1.5K
👁️阅读量 加载中...

peewee 是一个小巧而灵活的 Python ORM 框架,本文档将介绍 XuguDB 对 peewee 框架的适配情况,并提供使用 peewee 开发 XuguDB 应用的 Demo 指南。

框架名称适配起始版本官网地址源框架下载地址XuguDB框架下载demo程序地址
peewee3.17.1peewee官网peewee官方下载版本发布列表xugu-peewee

提示

其他适配版本可详见版本发布列表

一、方言包使用说明 ​

下载 XuguDB 方言压缩包并解压后,将得到的 xgpeewee 目录与 XuguDB 驱动包一同放置于应用启动文件同级目录下。在应用程序入口导入 XuguDB 方言包即可进行 XuguDB peewee 应用的正常开发。

python
# 导入 XuguDB peewee 方言包
from xgpeewee import *

二、连接示例程序 ​

本章节将介绍如何在 peewee ORM 框架中连接 XuguDB ,并演示包括创建连接、建立数据表、执行数据插入、更新、查询以及删除在内的核心数据库操作。

2.1 前提条件 ​

  • 已安装 Python 3.x 。
  • 计算机已部署 XuguDB 12.0.0 或有能连接访问的虚谷数据库实例。

2.2 操作步骤 ​

  1. 获取 XuguDB 连接信息。
  2. 安装 peewee 库。
  3. 编写 peeweedemo.py 文件,填入数据库连接信息。
  4. 运行 peeweedemo.py 文件。

2.2.1 修改 peeweedemo.py 文件,编写数据库连接信息 ​

根据 XuguDB 连接信息修改 Demo 项目 peeweedemo.py 文件,填入数据库连接信息。

python
from peewee import *
from xgpeewee import *

# 创建xugu peewee database
database = XuguDatabase(database='SYSTEM', user='SYSDBA', password='SYSDBA', host='192.168.2.216', port=5138)

定义模型代码,并初始化创建数据库表。

python
class User(Model):
    name = CharField()
    age = IntegerField()

    class Meta:
        database = database


database.create_tables([User])

实践数据的插入(Insert)、更新(Update)、查询(Select)和删除(Delete) 等关键操作。

python
user = User(name='John', age=25)
user.save()

# 更新用户的年龄
user = User.get(User.name == 'John')
user.age = 30
user.save()
print(user.id,user.name, user.age)


# 删除用户
user = User.get(User.name == 'John')
user.delete_instance()

# 批量插入

data = [
    {'name': 'Alice', 'age': 25},
    {'name': 'Bob', 'age': 30},
    {'name': 'Charlie', 'age': 35}
]

with database.atomic():  # 使用事务批量插入数据
    User.insert_many(data).execute()

# 查询所有用户
users = User.select()
for user in users:
    print(user.id,user.name, user.age)

User.delete().execute()

2.2.2 运行 peeweedemo.py 文件 ​

打开命令提示符或 PowerShell 终端,运行 peeweedemo.py 文件,查询数据并输出结果。

python
python peeweedemo.py

返回结果如下:

cmd
1 John 30
2 Alice 25
3 Bob 30
4 Charlie 35

三、常见问题&解决办法 ​

在使用 peewee 连接 XuguDB 时,可能会遇到各种错误。以下是一些常见的错误及其处理方法:

  • xgcondb 包不存在:xgcondb 包与 xgpeewee 包不在同一级别目录,导致包导入失败。

  • N + 1 问题 : 使用 prefetch() 和 join() 减少嵌套循环,使用 Peewee 的日志记录功能查看实际执行的 SQL 语句,找出不必要的查询。