peewee 使用手册
📄字数 1.5K
👁️阅读量 加载中...
peewee 是一个小巧而灵活的 Python ORM 框架,本文档将介绍 XuguDB 对 peewee 框架的适配情况,并提供使用 peewee 开发 XuguDB 应用的 Demo 指南。
框架名称 | 适配起始版本 | 官网地址 | 源框架下载地址 | XuguDB框架下载 | demo程序地址 |
---|---|---|---|---|---|
peewee | 3.17.1 | peewee官网 | 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 操作步骤
- 获取 XuguDB 连接信息。
- 安装 peewee 库。
- 编写 peeweedemo.py 文件,填入数据库连接信息。
- 运行 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 语句,找出不必要的查询。