- 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物件,並藉助它們執行查詢。
首先,宣告一個與資料庫中表對應的 Table 物件。您必須指定表名和列列表。也可以選擇提供主鍵。
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()
廣告