Python中的ORM框架Peewee詳解
ORM(物件關係映射)是一種將物件與關聯式資料庫之間進行映射的技術。本文將介紹一個Python中的ORM框架Peewee。 Peewee是一個輕量級、易用、靈活的ORM框架,支援SQLite、MySQL、PostgreSQL等多種資料庫。本文將介紹Peewee的安裝、基本用法、進階用法以及與其他ORM框架的比較。
Peewee可以透過pip安裝。在終端機中輸入以下指令即可安裝:
pip install peewee
#(1)資料庫連線
在使用Peewee前,需要先進行資料庫連線。下面的程式碼展示如何透過Peewee連接SQLite資料庫:
from peewee import * db = SqliteDatabase('my_database.db')
其中,my_database.db為SQLite資料庫的名稱,如果該資料庫檔案不存在,則會在目前目錄下建立該檔案。
Peewee也支援MySQL、PostgreSQL等資料庫,只需要將SqliteDatabase替換為對應的資料庫。例如,下面的程式碼展示如何透過Peewee連接MySQL資料庫:
db = MySQLDatabase('my_database', user='my_user', password='my_password', host='my_host', port=3306)
(2)定義模型
Peewee使用模型來描述資料庫中的表。每一個模型代表一張表,每個屬性則代表表中的一個欄位。下面的程式碼定義了一個模型User,其中包含id和name兩個欄位:
class User(Model): id = AutoField(primary_key=True) name = CharField() class Meta: database = db
其中,AutoField代表自增主鍵,primary_key=True表示該欄位為主鍵,CharField代表字串型別。
(3)建立表格
在定義完模型之後,需要對應的資料庫中建立對應的表。 Peewee提供了create_table方法來建立表,程式碼如下:
User.create_table()
(4)插入資料
Peewee提供了save方法來將資料插入資料庫。下面的程式碼插入了一條資料:
user = User(name='张三') user.save()
(5)查詢資料
Peewee提供了get和select方法來查詢資料。其中,get方法用於查詢單一數據,select方法用於查詢多個數據。下面的程式碼查詢了所有名字為張三的使用者:
users = User.select().where(User.name == '张三') for user in users: print(user.id, user.name)
(1)關聯查詢
Peewee支援外鍵關聯查詢。下面的程式碼定義了一個模型Order,其中包含id、user和product三個欄位:
class Order(Model): id = AutoField(primary_key=True) user = ForeignKeyField(User, backref='orders') product = CharField() class Meta: database = db
其中,ForeignKeyField代表外鍵,backref='orders'表示透過User.orders可以存取到該使用者的所有訂單。
可以透過join方法進行關聯查詢,如下所示:
orders = Order.select().join(User).where(User.name == '张三') for order in orders: print(order.id, order.user.name, order.product)
(2)事務操作
Peewee支援事務操作。可以將多個對資料庫的操作封裝在with db.atomic()中,程式碼如下:
with db.atomic() as txn: user1 = User(name='张三') user1.save() user2 = User(name='李四') user2.save() for i in range(10): order = Order(user=user1, product='product_' + str(i)) order.save() order = Order(user=user2, product='product_' + str(i)) order.save()
與Django自帶的ORM框架相比,Peewee更加輕量級,使用也更加靈活。與SQLAlchemy相比,Peewee的語法更加簡潔明了,同時也提供了許多方便的高階用法。
總之,Peewee是一個值得推薦的Python ORM框架,由於其靈活和易用,它在許多專案中也被廣泛使用。
以上是Python中的ORM框架Peewee詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!