- Peewee教程
- Peewee - 主页
- Peewee - 概述
- Peewee - 数据库类
- Peewee - 模型
- Peewee - 野外课程
- Peewee - 插入新记录
- Peewee - 选择记录
- Peewee - 过滤器
- Peewee - 主键和复合键
- Peewee - 更新现有记录
- Peewee - 删除记录
- Peewee - 创建索引
- Peewee - 约束
- Peewee - 使用 MySQL
- Peewee - 使用 PostgreSQL
- Peewee - 动态定义数据库
- Peewee - 连接管理
- Peewee - 关系与加入
- Peewee - 子查询
- Peewee - 排序
- Peewee - 计数和聚合
- Peewee - SQL 函数
- Peewee - 检索行元组/字典
- Peewee - 用户定义的运算符
- Peewee - 原子事务
- Peewee - 数据库错误
- Peewee - 查询生成器
- Peewee - 与 Web 框架集成
- Peewee - SQLite 扩展
- Peewee - PostgreSQL 和 MySQL 扩展
- Peewee - 使用 CockroachDB
- Peewee有用资源
- Peewee - 快速指南
- Peewee - 有用的资源
- Peewee - 讨论
Peewee - 查询生成器
Peewee 还提供非 ORM API 来访问数据库。我们可以将数据库表和列绑定到Peewee 中定义的Table和Column对象,并在它们的帮助下执行查询,而不是定义模型和字段。
首先,声明一个与我们数据库中的表对象相对应的表对象。您必须指定表名称和列列表。可选地,还可以提供主键。
Contacts=Table('Contacts', ('id', 'RollNo', 'Name', 'City'))
该表对象通过bind()方法与数据库绑定。
Contacts=Contacts.bind(db)
例子
现在,我们可以使用 select() 方法在此表对象上设置 SELECT 查询,并迭代结果集,如下所示 -
names=Contacts.select() for name in names: print (name)
输出
默认情况下,行作为字典返回。
{'id': 1, 'RollNo': 101, 'Name': 'Anil', 'City': 'Mumbai'} {'id': 2, 'RollNo': 102, 'Name': 'Amar', 'City': 'Delhi'} {'id': 3, 'RollNo': 103, 'Name': 'Raam', 'City': 'Indore'} {'id': 4, 'RollNo': 104, 'Name': 'Leena', 'City': 'Nasik'} {'id': 5, 'RollNo': 105, 'Name': 'Keshav', 'City': 'Pune'} {'id': 6, 'RollNo': 106, 'Name': 'Hema', 'City': 'Nagpur'} {'id': 7, 'RollNo': 107, 'Name': 'Beena', 'City': 'Chennai'} {'id': 8, 'RollNo': 108, 'Name': 'John', 'City': 'Delhi'} {'id': 9, 'RollNo': 109, 'Name': 'Jaya', 'City': 'Nasik'} {'id': 10, 'RollNo': 110, 'Name': 'Raja', 'City': 'Nasik'}
如果需要,它们可以作为元组、命名元组或对象来获取。
元组
程序如下 -
例子
names=Contacts.select().tuples() for name in names: print (name)
输出
输出如下 -
(1, 101, 'Anil', 'Mumbai') (2, 102, 'Amar', 'Delhi') (3, 103, 'Raam', 'Indore') (4, 104, 'Leena', 'Nasik') (5, 105, 'Keshav', 'Pune') (6, 106, 'Hema', 'Nagpur') (7, 107, 'Beena', 'Chennai') (8, 108, 'John', 'Delhi') (9, 109, 'Jaya', 'Nasik') (10, 110, 'Raja', 'Nasik')
命名元组
该计划如下:
例子
names=Contacts.select().namedtuples() for name in names: print (name)
输出
输出如下 -
Row(id=1, RollNo=101, Name='Anil', City='Mumbai') Row(id=2, RollNo=102, Name='Amar', City='Delhi') Row(id=3, RollNo=103, Name='Raam', City='Indore') Row(id=4, RollNo=104, Name='Leena', City='Nasik') Row(id=5, RollNo=105, Name='Keshav', City='Pune') Row(id=6, RollNo=106, Name='Hema', City='Nagpur') Row(id=7, RollNo=107, Name='Beena', City='Chennai') Row(id=8, RollNo=108, Name='John', City='Delhi') Row(id=9, RollNo=109, Name='Jaya', City='Nasik') Row(id=10, RollNo=110, Name='Raja', City='Nasik')
要插入新记录,INSERT 查询的构造如下 -
id = Contacts.insert(RollNo=111, Name='Abdul', City='Surat').execute()
如果要添加的记录列表存储为字典列表或元组列表,则可以批量添加它们。
Records=[{‘RollNo’:112, ‘Name’:’Ajay’, ‘City’:’Mysore’}, {‘RollNo’:113, ‘Name’:’Majid’,’City’:’Delhi’}} Or Records=[(112, ‘Ajay’,’Mysore’), (113, ‘Majid’, ‘Delhi’)}
INSERT 查询编写如下 -
Contacts.insert(Records).execute()
Peewee Table 对象有update()方法来实现 SQL UPDATE 查询。要将所有记录的城市从 Nasik 更改为 Nagar,我们使用以下查询。
Contacts.update(City='Nagar').where((Contacts.City=='Nasik')).execute()
最后,Peewee中的Table类也有delete()方法来实现SQL中的DELETE查询。
Contacts.delete().where(Contacts.Name=='Abdul').execute()