Penjelasan terperinci tentang rangka kerja ORM Peewee dalam Python

王林
Lepaskan: 2023-06-10 10:57:14
asal
2707 orang telah melayarinya

Penjelasan terperinci tentang Peewee, rangka kerja ORM dalam Python

ORM (Pemetaan Perhubungan Objek) ialah teknologi yang memetakan objek ke pangkalan data hubungan. Artikel ini akan memperkenalkan Peewee, rangka kerja ORM dalam Python. Peewee ialah rangka kerja ORM yang ringan, mudah digunakan, fleksibel yang menyokong berbilang pangkalan data seperti SQLite, MySQL dan PostgreSQL. Artikel ini akan memperkenalkan pemasangan, penggunaan asas, penggunaan lanjutan dan perbandingan Peewee dengan rangka kerja ORM yang lain.

  1. Memasang Peewee

Peewee boleh dipasang melalui pip. Masukkan arahan berikut dalam terminal untuk memasang:

pip install peewee
Salin selepas log masuk
  1. Penggunaan asas

(1) Sambungan pangkalan data

Sebelum menggunakan Peewee, anda perlu lakukan ia sambungan pangkalan data pertama. Kod berikut menunjukkan cara menyambung ke pangkalan data SQLite melalui Peewee:

from peewee import *

db = SqliteDatabase('my_database.db')
Salin selepas log masuk

Antaranya, my_database.db ialah nama pangkalan data SQLite Jika fail pangkalan data tidak wujud, fail akan dibuat dalam direktori semasa.

Peewee juga menyokong MySQL, PostgreSQL dan pangkalan data lain Anda hanya perlu menggantikan SqliteDatabase dengan pangkalan data yang sepadan. Contohnya, kod berikut menunjukkan cara menyambung ke pangkalan data MySQL melalui Peewee:

db = MySQLDatabase('my_database', user='my_user', password='my_password', host='my_host', port=3306)
Salin selepas log masuk

(2) Tentukan model

Peewee menggunakan model untuk menerangkan jadual dalam pangkalan data. Setiap model mewakili jadual, dan setiap atribut mewakili medan dalam jadual. Kod berikut mentakrifkan model Pengguna, yang mengandungi dua medan: id dan nama:

class User(Model):
    id = AutoField(primary_key=True)
    name = CharField()

    class Meta:
        database = db
Salin selepas log masuk

Antaranya, AutoField mewakili kunci utama auto-incrementing, primary_key=True mewakili medan sebagai kunci utama, dan CharField mewakili jenis rentetan.

(3) Cipta jadual

Selepas menentukan model, anda perlu mencipta jadual yang sepadan dalam pangkalan data yang sepadan. Peewee menyediakan kaedah create_table untuk mencipta jadual, kodnya adalah seperti berikut:

User.create_table()
Salin selepas log masuk

(4) Masukkan data

Peewee menyediakan kaedah simpan untuk memasukkan data ke dalam pangkalan data. Kod berikut memasukkan sekeping data:

user = User(name='张三')
user.save()
Salin selepas log masuk

(5) Data pertanyaan

Peewee menyediakan kaedah dapatkan dan pilih untuk membuat pertanyaan data. Antaranya, kaedah get digunakan untuk menanyakan sekeping data, dan kaedah pilih digunakan untuk menanyakan beberapa keping data. Kod berikut menanyakan semua pengguna bernama Zhang San:

users = User.select().where(User.name == '张三')
for user in users:
    print(user.id, user.name)
Salin selepas log masuk
  1. Penggunaan lanjutan

(1) Pertanyaan persatuan

Peewee menyokong Pertanyaan persatuan kunci asing. Kod berikut mentakrifkan model Pesanan, yang mengandungi tiga medan: id, pengguna dan produk:

class Order(Model):
    id = AutoField(primary_key=True)
    user = ForeignKeyField(User, backref='orders')
    product = CharField()

    class Meta:
        database = db
Salin selepas log masuk

Antaranya, ForeignKeyField mewakili kunci asing, dan backref='orders' bermaksud pengguna boleh diakses melalui Pengguna .pesanan Semua pesanan.

Anda boleh melakukan pertanyaan berkaitan melalui kaedah gabungan, seperti yang ditunjukkan di bawah:

orders = Order.select().join(User).where(User.name == '张三')
for order in orders:
    print(order.id, order.user.name, order.product)
Salin selepas log masuk

(2) Operasi transaksi

Peewee menyokong operasi transaksi. Berbilang operasi pada pangkalan data boleh dirangkumkan dengan db.atomic(). Kodnya adalah seperti berikut:

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()
Salin selepas log masuk
  1. Perbandingan dengan rangka kerja ORM lain

Dengan Perbandingan Django sendiri dengan rangka kerja ORM, Peewee lebih ringan dan lebih fleksibel untuk digunakan. Berbanding dengan SQLAlchemy, sintaks Peewee adalah lebih ringkas dan jelas, dan ia juga menyediakan banyak penggunaan lanjutan yang mudah.

Ringkasnya, Peewee ialah rangka kerja Python ORM yang disyorkan Oleh kerana fleksibiliti dan kemudahan penggunaannya, ia juga digunakan secara meluas dalam banyak projek.

Atas ialah kandungan terperinci Penjelasan terperinci tentang rangka kerja ORM Peewee dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan