Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang Pony ORM, rangka kerja ORM dalam Python

Penjelasan terperinci tentang Pony ORM, rangka kerja ORM dalam Python

WBOY
WBOYasal
2023-06-10 21:30:342654semak imbas

Python ialah bahasa pengaturcaraan peringkat tinggi yang digunakan secara meluas dalam pembangunan web, pengkomputeran saintifik, pemprosesan data dan bidang lain. Dalam pembangunan Python, rangka kerja ORM (Object-Relational Mapping) merupakan komponen penting Ia boleh mewujudkan jambatan yang koheren antara pangkalan data hubungan dan bahasa pengaturcaraan berorientasikan objek, dan memudahkan kerja pembangunan pengaturcara Python.

Di antara banyak rangka kerja Python ORM, Pony ORM ialah alat pemetaan objek-hubungan yang ringan Ia menggunakan sintaks semula jadi dan mudah bahasa Python dan menyediakan fungsi kaya yang boleh memetakan objek Python dengan cepat untuk Melaksanakan kegigihan dalam pangkalan data hubungan. .

  1. Pemasangan

Pertama, kita perlu memasangnya melalui alat pengurusan pakej pip.

pip install pony

  1. Quick Start

2.1 Sambung ke pangkalan data

Pertama, kita perlu menyambung ke pangkalan data, Pony ORM menyokong pelbagai Pelbagai pangkalan data hubungan, termasuk MySQL, PostgreSQL, SQLite, Oracle, MS SQL Server, dll. Mari kita ambil SQLite sebagai contoh.

dari import pony.orm *

db = Pangkalan Data()

db.bind(provider='sqlite', nama fail='database.sqlite', create_db=True )

Perhatikan bahawa sebelum menyambung ke pangkalan data, anda perlu mentakrifkan tika Pangkalan Data, dan kemudian menentukan jenis pangkalan data dan nama pangkalan data melalui kaedah bind(). Jika pangkalan data tidak wujud, anda boleh menggunakan pilihan create_db=True untuk mencipta pangkalan data secara automatik.

2.2 Tentukan kelas entiti

Seterusnya, kita perlu mentakrifkan kelas Python dan menukarnya kepada kelas entiti melalui penghias db.Entity(). Atribut dalam kelas entiti dipetakan ke lajur jadual dalam pangkalan data dan kejadian kelas entiti sepadan dengan baris dalam jadual.

kelas Pelanggan(db.Entiti):

name = Required(str)
age = Required(int)
address = Optional(str)

Dalam kod di atas, kami mentakrifkan kelas entiti Pelanggan dan mentakrifkan tiga atribut: nama, umur dan alamat. Antaranya, nama dan umur adalah atribut yang diperlukan (Diperlukan), dan alamat adalah atribut pilihan (Pilihan).

2.3 Cipta jadual

Selepas mencipta kelas entiti, kita perlu mencipta struktur jadual yang sepadan dalam pangkalan data. Ini boleh dilakukan melalui kaedah db.generate_mapping().

db.generate_mapping(create_tables=True)

Selepas langkah di atas, kami telah berjaya menyambung ke pangkalan data, menentukan kelas entiti dan mencipta jadual yang sepadan dalam pangkalan data.

  1. Tambah, Padam, Ubah Suai dan Semak

3.1 Memasukkan data

Memasukkan data ialah operasi biasa. Melalui Pony ORM, kami boleh memasukkan data dengan mudah.

dengan db_session:

c1 = Customer(name='Tom', age=20)
c2 = Customer(name='Jerry', age=25, address='New York')
flush()

Dalam kod di atas, kami menggunakan kata kunci with db_session untuk mengisytiharkan sesi, dan kemudian mencipta dua kejadian Pelanggan c1 dan c2 dengan membuat instantiate kelas entiti Pelanggan dan Berikan ia kepada pembolehubah. Seterusnya, kami memanggil kaedah flush() untuk memasukkan contoh c1 dan c2 ke dalam pangkalan data.

3.2 Data pertanyaan

Data pertanyaan ialah salah satu fungsi rangka kerja ORM yang paling biasa digunakan. Melalui ORM Pony, kita boleh menggunakan ungkapan pertanyaan atau objek ORM untuk menanyakan data.

Ungkapan pertanyaan:

select(c for c in Customer if c.age > 20)

Dalam kod di atas, kami menggunakan fungsi select() untuk menentukan yang dikehendaki Kelas entiti untuk disoal. Di sini kami menentukan untuk menanyakan rekod dalam jadual Pelanggan yang berumur lebih daripada 20 tahun. Akhir sekali, kami menggunakan konteks dengan db_session yang mengandungi fungsi pilih() untuk melaksanakan operasi pertanyaan.

Objek ORM:

dengan db_session:

customers = Customer.select(lambda c:c.age > 20)
for c in customers:
    print(c.name, c.age, c.address)

Dalam kod di atas, kami menggunakan kata kunci with db_session untuk mengisytiharkan sesi dan menggunakan Customer.select() untuk menanyakan Jadual pelanggan Rekod di mana kumpulan umur melebihi 20 tahun. Hasil pertanyaan diwakili sebagai objek ORM dan kita boleh mengakses sifat dan kaedahnya sama seperti objek Python. Akhir sekali, kami menggunakan gelung for untuk mengeluarkan hasil pertanyaan.

3.3 Kemas kini data

Kendalian mengemas kini data adalah sangat mudah Kita hanya perlu menanyakan rekod yang perlu dikemas kini dahulu, kemudian mengubah suai nilai atribut yang sepadan, dan akhirnya memanggil siram. () kaedah untuk menyimpan data yang diubah suai.

dengan db_session:

customer = Customer.get(name='Tom')
customer.address = 'Beijing'
flush()

Dalam kod di atas, kami menggunakan penyataan Customer.get() untuk menanyakan rekod pelanggan bernama Tom, dan kemudian mengubah suai alamatnya ke Beijing. Akhir sekali, kami menyimpan data yang dikemas kini ke pangkalan data dengan memanggil kaedah flush().

3.4 Memadam data

Memadam data juga sangat mudah Kita hanya perlu menanyakan rekod yang perlu dipadamkan dahulu, dan kemudian memanggil kaedah delete().

dengan db_session:

customer = Customer.get(name='Tom')
customer.delete()

Dalam kod di atas, kami menggunakan penyataan Customer.get() untuk menanyakan rekod pelanggan bernama Tom, dan kemudian memanggil kaedah delete() untuk memadamkan pelanggan rekod daripada pangkalan data Rekod.

  1. Ringkasan

Pony ORM ialah rangka kerja ORM Python yang ringkas, mudah digunakan, kaya ciri yang boleh memetakan objek Python dengan pantas ke pangkalan data hubungan untuk perubahan kegigihan. Apabila menggunakan ORM Pony, kita perlu terlebih dahulu menyambung ke pangkalan data, kemudian menentukan kelas entiti, mencipta jadual, dan akhirnya melaksanakan operasi seperti penambahan, pemadaman, pengubahsuaian dan pertanyaan melalui ungkapan pertanyaan atau objek ORM. Untuk pemula, Pony ORM ialah rangka kerja ORM yang sangat mesra dengan kos pembelajaran yang rendah, membolehkan anda bermula dengan cepat.

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

Kenyataan:
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