Peewee查询生成器

Peewee 还提供了一个non-ORM API 来访问数据库。我们可以将数据库表和列 绑定到 Peewee 中定义的TableColumn对象,然后执行查询,而不是定义模型和字段。

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

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

This table object is bound with the database with bind() method.

这个表对象通过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'}

If needed, they can be obtained as tuples, namedtuples or objects.

如果又需要,也可以获得元组、命名元组或对象。

元组

程序如下:

示例

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 查询。如果要将所有记录的 City字段 从 Nasik 更改为 Nagar,我们使用以下查询。

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

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

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

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!