Peewee – 查询生成器

Peewee – 查询生成器

Peewee还提供了一个非ORM的API来访问数据库。我们可以将数据库中的表和列绑定到Peewee中定义的 表和列 对象上,而不是定义模型和字段,并在其帮助下执行查询。

首先,声明一个与我们数据库中的表相对应的表对象。你必须指定表名和列的列表。也可以选择提供一个主键。

Contacts=Table('Contacts', ('id', 'RollNo', 'Name', 'City'))
Python

这个表对象是用 bind() 方法与数据库绑定的。

Contacts=Contacts.bind(db)
Python

例子

现在,我们可以用select()方法在这个表对象上设置一个SELECT查询,并对结果集进行迭代,如下所示

names=Contacts.select()
for name in names:
   print (name)
Python

输出

默认情况下,这些行是以字典的形式返回的。

{'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'}
Python

如果需要,它们可以作为图元、命名图元或对象获得。

图元

程序如下 –

例子

names=Contacts.select().tuples()
for name in names:
   print (name)
Python

输出

输出情况如下

(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')
Python

命名的图元

该程序说明如下

例子

names=Contacts.select().namedtuples()
for name in names:
   print (name)
Python

输出

输出情况如下

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')
Python

为了插入一条新的记录,INSERT查询的结构如下

id = Contacts.insert(RollNo=111, Name='Abdul', City='Surat').execute()
Python

如果要添加的记录列表被存储为字典列表或图元列表,它们可以被批量添加。

Records=[{‘RollNo’:112, ‘Name’:’Ajay’, ‘City’:’Mysore’}, 
   {‘RollNo’:113, ‘Name’:’Majid’,’City’:’Delhi’}}

Or

Records=[(112, ‘Ajay’,’Mysore’), (113, ‘Majid’, ‘Delhi’)}
Python

INSERT查询的写法如下

Contacts.insert(Records).execute()
Python

Peewee表对象有 update() 方法来实现SQL UPDATE查询。为了将所有记录的城市从Nasik改为Nagar,我们使用以下查询。

Contacts.update(City='Nagar').where((Contacts.City=='Nasik')).execute()
Python

最后,Peewee的表类也有 delete() 方法来实现SQL中的DELETE查询。

Contacts.delete().where(Contacts.Name=='Abdul').execute()
Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程