Rumah >pembangunan bahagian belakang >Tutorial Python >Penjelasan terperinci tentang Pangkalan Data rangka kerja ORM dalam Python
Dalam beberapa tahun kebelakangan ini, Python telah menjadi semakin popular dalam bidang pembangunan sebagai bahasa pengaturcaraan yang mudah dipelajari, mudah digunakan dan sangat fleksibel. Dalam aplikasi Python, rangka kerja ORM (Object-Relational Mapping) memainkan peranan penting, yang bukan sahaja meningkatkan kecekapan pembangunan, tetapi juga memudahkan pembangun mengurus data dan objek.
Dalam rangka kerja ORM, pustaka Pangkalan Data ialah perpustakaan Python yang muncul yang sering digunakan untuk mengakses pangkalan data hubungan semasa proses pembangunan. Walaupun perpustakaan ini masih agak baru dalam dunia pembangunan Python, ia telah menunjukkan potensi yang besar. Oleh itu, dalam artikel ini, kami akan memperkenalkan perpustakaan Pangkalan Data secara terperinci untuk membantu pembangun lebih memahami dan mempelajari rangka kerja ORM Python yang berkuasa ini.
1. Latar belakang pembangunan pangkalan data
Pustaka Pangkalan Data ialah perpustakaan Python ringan yang digunakan untuk memudahkan pembangunan pangkalan data SQL tak segerak. Ia menggunakan asyncio untuk pengaturcaraan tak segerak dan boleh berfungsi dengan pelbagai enjin pangkalan data SQL, seperti PostgreSQL, MySQL, MariaDB, SQLite dan banyak lagi. Selain itu, perpustakaan Pangkalan Data juga menyediakan API yang sangat ringkas dan mudah digunakan.
Matlamat perpustakaan Pangkalan Data adalah untuk membolehkan pembangun membina aplikasi dengan lebih pantas dan menghapuskan banyak kod berulang. Ia berprestasi sangat baik dari segi prestasi dan menyediakan ciri lanjutan seperti pengumpulan sambungan, pengurusan urus niaga, dan banyak peningkatan pemandu tak segerak serta dokumentasi bantuan. Oleh itu, perpustakaan Pangkalan Data sudah pasti merupakan pilihan yang sangat baik untuk perkhidmatan mikro yang kompleks atau aplikasi web yang besar yang memerlukan capaian kolaboratif kepada pangkalan data SQL.
2. Fungsi teras Pangkalan Data
Matlamat reka bentuk perpustakaan Pangkalan Data adalah untuk membolehkan pembangun menggunakan API mudah untuk mencapai interaksi pantas dengan pangkalan data SQL. Di bawah ini kami akan memperkenalkan beberapa fungsi teras pustaka Pangkalan Data:
1 Kod ini ringkas dan jelas
Pustaka Pangkalan Data menggunakan sintaks ringkas Python untuk memaksimumkan kecekapan pembangunan pembangun Semua ciri lanjutan seperti operasi tak segerak dan serentak.
Sebagai contoh, kod berikut mencipta jadual bernama "pengguna". Antaranya, beberapa atribut jadual termasuk ID, Nama, Umur dan E-mel.
import databases database = databases.Database("sqlite:///example.db") query = "CREATE TABLE users (ID INT PRIMARY KEY, Name TEXT, Age INT, Email TEXT)" await database.execute(query=query)
2. API pelanggan dan pelayan kolaboratif
Pustaka pangkalan data menyediakan API peringkat tinggi, yang merangkumi operasi tak segerak dan segerak, supaya kami boleh menyatukan operasi ini apabila menggunakannya .
import database database = databases.Database("sqlite:///example.db") # 异步操作(async) async with database.transaction(): query = "INSERT INTO users (ID, Name, Age, Email) VALUES (:id, :name, :age, :email)" values = {"id": 1, "name": "John Doe", "age": 23, "email": "[email protected]"} await database.execute(query=query, values=values) # 同步操作 query = "SELECT * FROM users WHERE ID=:id" values = {"id": 1} result = database.fetch_one(query=query, values=values)
3. Kumpulan sambungan
Pustaka pangkalan data boleh mengurus isu kumpulan sambungan dan meningkatkan kecekapan akses pangkalan data. Apabila pembangun menggunakan pustaka Pangkalan Data, mereka hanya perlu menentukan saiz kolam sambungan untuk melaksanakan sambungan automatik dengan mudah tanpa perlu mengurus sambungan secara manual, yang sangat mudah.
Sebagai contoh, dalam kod berikut, kami boleh menentukan bilangan maksimum sambungan dan bilangan sambungan minimum, supaya pustaka Pangkalan Data boleh mengurus kumpulan sambungan dengan lebih baik.
import databases database = databases.Database("sqlite:///example.db", min_size=1, max_size=10)
4. Pengurusan transaksi
Pustaka Pangkalan Data menyediakan pengurusan transaksi bersepadu untuk memastikan konsistensi dan kebolehpercayaan semasa menjalankan operasi. Transaksi ialah ciri DBMS yang sangat penting yang membolehkan pembangun melaksanakan operasi dalam kelompok.
Sebagai contoh, dalam kod di bawah, kami boleh memproses data secara kolaboratif dengan memulakan dan melakukan transaksi secara tidak segerak.
import databases database = databases.Database("sqlite:///example.db") async with database.transaction(): query_1 = "INSERT INTO users (ID, Name, Age, Email) VALUES (:id, :name, :age, :email)" values_1 = {"id": 1, "name": "John Doe", "age": 23, "email": "[email protected]"} await database.execute(query=query_1, values=values_1) query_2 = "UPDATE users SET Age=:age WHERE ID=:id" values_2 = {"age": 25, "id": 1} await database.execute(query=query_2, values=values_2) await database.commit()
5. Menyokong berbilang enjin pangkalan data
Pustaka Pangkalan Data menyokong pelbagai enjin pangkalan data biasa, termasuk MySQL, PostgreSQL, MariaDB, dll. Ini memudahkan kita membina persekitaran pangkalan data yang kita inginkan.
Sebagai contoh, jika kami mempunyai coretan kod berikut, kami boleh memilih enjin pangkalan data yang biasa kami gunakan mengikut keperluan kami.
import databases database = databases.Database("postgresql://user:[email protected]:5432/example") 三、使用Databases库 在学习使用Databases库之前,我们需要先进行库的安装工作。 1.安装Databases库 我们可以通过以下命令安装Databases库:
pangkalan data pemasangan pip
2.创建数据库连接 要使用Databases库,我们首先需要通过URL字符串为我们的PHP应用程序创建一个与数据库引擎的连接。
pangkalan data import
daripada pangkalan data import Pangkalan Data
pangkalan data = Pangkalan Data("sqlite:///example.db")
3.查询数据 Databases库提供了8个异步和同步函数,可用于查询数据库: `fetch_all()`,`fetch_one()`, `fetch_val()`, `fetch_many()`, `fetch_optional()`, `execute()`, `execute_many()`和`iterate()`
result = database.fetch_all("SELECT * FROM users")
result = database.fetch_one( " SELECT * FROM users WHERE ID=:id", value = {"id": 1})
result = database.fetch_val("SELECT Name FROM users WHERE ID =:id", value = {"id": 1})
result = database.fetch_many(query="SELECT * FROM users", values=[ {'id':1}, {'id':2})
result = database.fetch_optional(query="SELECT * FROM users WHERE ID= :id", value={"id": 3})
result = tunggu pangkalan data.execute("INSERT INTO pengguna (ID, Nama, Umur, E-mel) NILAI (:id,:nama,:umur,:e-mel)",value={"id":5, "nama":"John","umur":25," e-mel":" [email protected]"})
hasil = menunggu pangkalan data.execute_many("INSERT INTO users (ID ,Nama,Umur, E-mel) NILAI (:id,:nama,:umur,:e-mel)",nilai=[{"id":5, "nama":"John","umur":25,"e-mel" :"[email protected ]"},{"id":6,"name":"Jack", "age":26,"email":"[email protected]"}])
async dengan database.connection() sebagai sambungan:
async with connection.transaction():
async for row in connection.iterate(query="SELECT * FROM users"): print(row)
4.使用事务 Databases库还提供了事务管理的机制。我们可以使用异步with语句来绑定事务。如果with语句内的所有操作成功完成,则会提交事务。否则,事务将被回滚。
async with database.transaction():
query = "MASUKKAN KE DALAM pengguna (ID,Nama,Umur,E-mel) NILAI (:id,:nama,:umur,:e-mel)"
nilai = {"id": 5, "nama": "Hassen", "age": 26 , "email": "[email protected]"}
tunggu database.execute(query, values)
pertanyaan = "MASUKKAN KE DALAM pengguna1 (ID,Nama,Umur,E-mel) NILAI (:id,:nama,:umur,:e-mel)"
nilai = {"id": 6, "nama": " Fatima", "age": 22, "email": "[email protected]"}
tunggu pangkalan data.execute(query, values)
Di atas ialah pengenalan terperinci pustaka Pangkalan Data dalam Rangka kerja Python ORM . Perpustakaan Pangkalan Data ialah rangka kerja ORM Python generasi baharu Ia mempunyai banyak ciri yang sangat baik, seperti pengoptimuman kod ringkas, operasi komunikasi tak segerak, kumpulan sambungan, dsb., yang boleh meningkatkan kecekapan pembangunan pembangun dan menggalakkan prestasi cemerlangnya. Walaupun perpustakaan Pangkalan Data masih agak baru dalam dunia pembangunan Python, ia semakin mendapat perhatian dan pengiktirafan daripada komuniti. Kami percaya bahawa perpustakaan ini akan memainkan peranan yang semakin penting dalam kerja masa depan pembangun Python.
Atas ialah kandungan terperinci Penjelasan terperinci tentang Pangkalan Data rangka kerja ORM dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!