python:peewee包

Peewee是Python中用于SQL操作的一个简洁库,它通过定义Model与数据库表进行映射。插入数据时,可以进行单条或批量插入,并通过事务保证原子性。删除和修改操作同样便捷。查询功能强大,支持计数、排序和过滤。对于大批量查询,避免使用limit和offset,改用条件查询以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

peewee是python对sql很好对一个封装

操作一个数据库表,必须对应一个model,包含各种Field对应数据表字段

p e e w e e 逻 辑 符 只 支 持 这 三 种 , 多 个 条 件 最 好 加 上 括 号 \red{peewee 逻辑符只支持这三种,多个条件最好加上括号} peewee

& #and
| #or#not

  • 增 \red{增}
create
bulk_create
save
insert
insert_many
batch_commit
insert_from

常用
单条插入:

model.insert(map).execute()

大 量 插 入 : 非 常 精 辟 \red{大量插入:非常精辟}

from peewee import chunked
with db.atomic():
    for batch in chunked(data, 100):
        Person.insert_many(batch).execute()

批量插入通常会包装成事务来保证原子性atomic
python提供chunked来自动分块


  • 删 \red{删}
model.delete().where(model.Name=='王五').execute()

  • 改 \red{改}
model.update({'Name': '赵六', 'Remarks': 'abc'}).where(model.Name=='张三').execute()

对于批量数字更新更快的写法:

model.update(intField=model.intField+1).execute()

  • 查 \red{查}
get
get_or_none
get_by_id
get_or_create
select

常用:

# 单个
result = model.select(model.Name, model.Age).where(model.Name == '张三')
# 多个
results = list(model.select(model.Name, model.Age).where(model.Name == '张三'))

查询数量:

cnt = model.select().where(model.Name == '张三').count()

排序和逆序:

result = model.select().where(model.Name == '张三').order_by(model.Age.asc())
result = model.select().where(model.Name == '张三').order_by(model.Age.desc())

如 果 大 量 分 批 次 查 询 , 不 建 议 使 用 l i m i t + o f f s e t 方 式 \red{如果大量分批次查询,不建议使用limit+offset方式} 使limit+offset
改 用 w h e r e   I d > l a s t I d 方 式 会 更 快 些 \red{改用where\ Id > lastId 方式会更快些} where Id>lastId

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值