介紹
Peewee是一個輕量級的ORM(對象關係映射)庫,用於Python應用程序中的數據庫訪問。它與SQLite、MySQL、PostgreSQL等關係數據庫兼容,並提供簡單易於使用的API進行查詢和數據操作。本文將介紹Peewee的使用,以便您能夠在Python應用程序中更輕鬆地操作數據庫。
Peewee的基本用法
創建數據庫連接
使用Peewee操作數據庫需要先創建一個數據庫連接。下面是一個使用SQLite數據庫連接的例子:
import peewee db = peewee.SqliteDatabase('my_database.db')
定義模型
Peewee的核心是模型(Model)對象,模型代表關係數據庫中的表。定義Peewee模型需要構建一個繼承自peewee.Model的類,並定義類的屬性作為模型的字段。例如,下面這個模型定義了一個名為「Person」的表,包含名字和年齡字段:
class Person(peewee.Model): name = peewee.CharField() age = peewee.IntegerField() class Meta: database = db
創建表格
當定義好模型後,需要使用Peewee的migrate()函數創建表格。代碼如下:
db.connect() db.create_tables([Person]) db.close()
添加數據
使用Peewee添加數據非常簡單。首先,創建模型對象並設置字段值,然後調用save()方法將對象保存到數據庫。下面是一個添加一個名為「Alice」、年齡為25的人的例子:
person = Person(name='Alice', age=25) person.save()
查詢數據
Peewee模型提供了易於使用的API進行查詢和數據操作。下面是一個查詢數據庫中所有名字以「A」開頭的人的例子:
query = Person.select().where(Person.name.startswith('A')) for person in query: print(person.name)
Peewee的高級用法
數據關係
Peewee通過基礎模型和外鍵來支持數據關係。外鍵是一個模型字段,指向另一個表中的主鍵。下面是一個定義兩個模型之間關係的例子:
class Person(peewee.Model): name = peewee.CharField() class Meta: database = db class Address(peewee.Model): person = peewee.ForeignKeyField(Person, backref='addresses') street = peewee.CharField() class Meta: database = db
在這個例子中,Address模型包含一個指向Person模型的外鍵。Person模型還定義了一個backref屬性,它定義了關係的反向引用。backref屬性將自動在Person模型上創建一個名為「addresses」的屬性,該屬性包含對Address對象的關聯。
批量操作
Peewee支持多種批量操作,例如插入/更新、刪除和選擇。下面是一個將多個Person對象插入到數據庫的例子:
persons = [ Person(name='Bob'), Person(name='Carol'), Person(name='Dave'), ] Person.insert_many(persons).execute()
自定義查詢
Peewee還允許您使用原始SQL查詢數據庫。下面是一個使用原始SQL查詢數據庫的例子:
query = Person.raw('SELECT * FROM persons WHERE persons.name LIKE ?', ('Bob%',)) for person in query: print(person.name)
總結
本文介紹了Peewee的基本用法和高級用法,包括創建數據庫連接、定義模型、創建表格、添加和查詢數據、數據關係、批量操作和自定義查詢。Peewee是一個輕量級的ORM庫,易於使用和擴展,適用於使用SQLite、MySQL、PostgreSQL等關係數據庫的Python應用程序。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/295253.html