Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der ORM-Framework-Datenbanken in Python
Python ist in den letzten Jahren als leicht zu erlernende, benutzerfreundliche und äußerst flexible Programmiersprache im Entwicklungsbereich immer beliebter geworden. In Python-Anwendungen spielt das ORM-Framework (Object-Relational Mapping) eine entscheidende Rolle, das nicht nur die Entwicklungseffizienz erheblich verbessert, sondern Entwicklern auch die Verwaltung von Daten und Objekten erleichtert.
Im ORM-Framework ist die Datenbankbibliothek eine aufstrebende Python-Bibliothek, die häufig für den Zugriff auf relationale Datenbanken während des Entwicklungsprozesses verwendet wird. Obwohl diese Bibliothek in der Welt der Python-Entwicklung noch relativ neu ist, hat sie bereits großes Potenzial gezeigt. Daher stellen wir in diesem Artikel die Datenbankbibliothek im Detail vor, um Entwicklern zu helfen, dieses leistungsstarke Python-ORM-Framework besser zu verstehen und zu erlernen.
1. Hintergrund der Datenbankentwicklung
Die Datenbankbibliothek ist eine leichtgewichtige Python-Bibliothek, die zur Vereinfachung der Entwicklung asynchroner SQL-Datenbanken verwendet wird. Es nutzt Asyncio für die asynchrone Programmierung und kann mit einer Vielzahl von SQL-Datenbank-Engines wie PostgreSQL, MySQL, MariaDB, SQLite und mehr arbeiten. Darüber hinaus bietet die Datenbankbibliothek auch eine äußerst übersichtliche und benutzerfreundliche API.
Das Ziel der Datenbankbibliothek besteht darin, Entwicklern die schnellere Erstellung von Anwendungen zu ermöglichen und eine Menge sich wiederholenden Codes zu eliminieren. Es schneidet hinsichtlich der Leistung sehr gut ab und bietet erweiterte Funktionen wie Verbindungspooling, Transaktionsverwaltung sowie viele asynchrone Treiberverbesserungen und Hilfedokumentation. Daher ist die Datenbankbibliothek zweifellos eine sehr gute Wahl für komplexe Microservices oder große Webanwendungen, die einen kollaborativen Zugriff auf SQL-Datenbanken erfordern.
2. Kernfunktionen von Datenbanken
Das Designziel der Datenbankbibliothek besteht darin, Entwicklern die Verwendung einfacher APIs zu ermöglichen, um eine schnelle Interaktion mit SQL-Datenbanken zu erreichen. Im Folgenden stellen wir einige Kernfunktionen der Datenbankbibliothek vor:
1. Der Code ist prägnant und klar.
Die Datenbankbibliothek verwendet die prägnante Syntax von Python, um die Entwicklungseffizienz von Entwicklern zu maximieren. Sie kann alle erweiterten Funktionen von Python implementieren, z und gleichzeitige Operationen.
Zum Beispiel erstellt der folgende Code eine Tabelle mit dem Namen „Benutzer“. Zu den Attributen der Tabelle gehören unter anderem ID, Name, Alter und E-Mail.
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. Kollaborations-Client- und Server-API
Die Datenbankbibliothek bietet eine High-Level-API, die asynchrone und synchrone Vorgänge umfasst, sodass wir diese Vorgänge bei der Verwendung vereinheitlichen können.
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. Verbindungspool
Datenbankbibliothek kann Probleme mit Verbindungspools einfach verwalten und die Effizienz des Datenbankzugriffs verbessern. Wenn Entwickler die Datenbankbibliothek verwenden, müssen sie nur die Größe des Verbindungspools angeben, um automatisierte Verbindungen einfach zu implementieren, ohne Verbindungen manuell verwalten zu müssen, was sehr praktisch ist.
Im folgenden Code können wir beispielsweise die maximale Anzahl von Verbindungen und die minimale Anzahl von Verbindungen angeben, damit die Datenbankbibliothek den Verbindungspool besser verwalten kann.
import databases database = databases.Database("sqlite:///example.db", min_size=1, max_size=10)
4. Transaktionsverwaltung
Die Datenbankbibliothek bietet eine integrierte Transaktionsverwaltung, um Konsistenz und Zuverlässigkeit bei der Durchführung von Vorgängen sicherzustellen. Transaktionen sind eine sehr wichtige DBMS-Funktion, die es Entwicklern ermöglicht, Vorgänge stapelweise auszuführen.
Im folgenden Code können wir beispielsweise gemeinsam Daten verarbeiten, indem wir Transaktionen asynchron starten und festschreiben.
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. Unterstützt mehrere Datenbank-Engines
Die Datenbankbibliothek unterstützt mehrere gängige Datenbank-Engines, einschließlich MySQL, PostgreSQL, MariaDB usw. Dies erleichtert uns den Aufbau der gewünschten Datenbankumgebung.
Wenn wir beispielsweise den folgenden Codeausschnitt haben, können wir unsere häufig verwendete Datenbank-Engine entsprechend unseren Anforderungen auswählen.
import databases database = databases.Database("postgresql://user:[email protected]:5432/example") 三、使用Databases库 在学习使用Databases库之前,我们需要先进行库的安装工作。 1.安装Databases库 我们可以通过以下命令安装Databases库:
pip Datenbanken installieren
2.创建数据库连接 要使用Databases库,我们首先需要通过URL字符串为我们的PHP应用程序创建一个与数据库引擎的连接。
Datenbanken importieren
aus Datenbanken importieren Datenbank
database = Datenbank("sqlite:///example.db")
3.查询数据 Databases库提供了8个异步和同步函数,可用于查询数据库: `fetch_all()`,`fetch_one()`, `fetch_val()`, `fetch_many()`, `fetch_optional()`, `execute()`, `execute_many()`和`iterate()`
Ergebnis = Datenbank.fetch_all("SELECT * Von Benutzern")
Ergebnis = Datenbank.fetch_one("SELECT * FROM Benutzer WHERE ID=:id", Wert = {"id": 1})
Ergebnis = Database.fetch_val("SELECT Name FROM Users WHERE ID=:id", value = {"id": 1})
result = Database.fetch_many(query="SELECT * FROM Users" , Werte=[{'id':1}, {'id':2})
Ergebnis = Datenbank.fetch_optional(query="SELECT * FROM Benutzer WHERE ID=: id", value={"id": 3})
Ergebnis = Warten auf Database.execute("INSERT INTO Benutzer (ID,Name,Alter,E-Mail) VALUES ( :id,: name,:age,:email)",value={"id":5, "name": "John", "age":25, "email": "[email protected]"})
Verwenden Sie asynchrone Iteratoren, um Daten zu verarbeiten
async for row in connection.iterate(query="SELECT * FROM users"): print(row)
4.使用事务 Databases库还提供了事务管理的机制。我们可以使用异步with语句来绑定事务。如果with语句内的所有操作成功完成,则会提交事务。否则,事务将被回滚。
value = {"id ": 5, " Name": "Hassen", "Alter": 26, "E-Mail": "[email protected]"}
Warten auf Database.execute(Abfrage, Werte)
query = "INSERT INTO user1 (ID,Name,Age,Email) VALUES (:id,:name,:age,:email)"
value = {"id": 6, "name": "Fatima", " Alter": 22, "E-Mail": "[email protected]"}
Warten auf Database.execute(Abfrage, Werte)
Das Obige ist die detaillierte Einführung der Datenbankbibliothek im Python ORM-Framework. Die Datenbankbibliothek ist ein Python-ORM-Framework der neuen Generation. Sie verfügt über viele hervorragende Funktionen, wie z. B. prägnante Codeoptimierung, asynchrone Kommunikationsvorgänge, Verbindungspools usw., die die Entwicklungseffizienz der Entwickler erheblich verbessern und ihre hervorragende Leistung fördern können. Obwohl die Datenbankbibliothek in der Welt der Python-Entwicklung noch relativ neu ist, findet sie in der Community zunehmend Beachtung und Anerkennung. Wir glauben, dass diese Bibliothek in der zukünftigen Arbeit von Python-Entwicklern eine immer wichtigere Rolle spielen wird.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der ORM-Framework-Datenbanken in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!