Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung von Pony ORM, dem ORM-Framework in Python

Ausführliche Erklärung von Pony ORM, dem ORM-Framework in Python

WBOY
WBOYOriginal
2023-06-10 21:30:342654Durchsuche

Python ist eine High-Level-Programmiersprache, die in der Webentwicklung, im wissenschaftlichen Rechnen, in der Datenverarbeitung und in anderen Bereichen weit verbreitet ist. In der Python-Entwicklung ist das ORM-Framework (Object-Relational Mapping) eine wichtige Komponente. Es kann eine kohärente Brücke zwischen relationalen Datenbanken und objektorientierten Programmiersprachen schlagen und die Entwicklungsarbeit von Python-Programmierern erleichtern.

Unter den vielen Python-ORM-Frameworks ist Pony ORM ein leichtes objektrelationales Zuordnungstool. Es nutzt die natürliche und einfache Syntax der Python-Sprache und bietet umfangreiche Funktionen, um Python-Objekte schnell auf relationale Datenbanken abzubilden.

  1. Installation

Zuerst müssen wir es über das Pip-Paketverwaltungstool installieren.

pip install pony

  1. Schnellstart

2.1 Verbindung zur Datenbank herstellen

Zuerst müssen wir eine Verbindung zu einer Datenbank herstellen. Pony ORM unterstützt eine Vielzahl relationaler Datenbanken, einschließlich MySQL, PostgreSQL, SQLite, Oracle, MS SQL Server usw. Nehmen wir SQLite als Beispiel.

from pony.orm import *

db = Database()

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

Beachten Sie, dass Sie vor dem Herstellen einer Verbindung mit der Datenbank Sie müssen eine Datenbankinstanz definieren und dann den Datenbanktyp und den Datenbanknamen über die Methode bind() angeben. Wenn die Datenbank nicht vorhanden ist, können Sie die Option „create_db=True“ verwenden, um die Datenbank automatisch zu erstellen.

2.2 Entitätsklasse definieren

Als nächstes müssen wir eine Python-Klasse definieren und sie über den Dekorator db.Entity() in eine Entitätsklasse konvertieren. Attribute in einer Entitätsklasse werden Tabellenspalten in der Datenbank zugeordnet, und Instanzen der Entitätsklasse entsprechen Zeilen in der Tabelle.

class Customer(db.Entity):

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

Im obigen Code definieren wir eine Customer-Entitätsklasse und drei Attribute: Name, Alter und Adresse. Unter diesen sind Name und Alter erforderliche Attribute (erforderlich) und Adresse ist ein optionales Attribut (optional).

2.3 Tabelle erstellen

Nachdem wir die Entitätsklasse erstellt haben, müssen wir die entsprechende Tabellenstruktur in der Datenbank erstellen. Dies kann über die Methode db.generate_mapping() erfolgen.

db.generate_mapping(create_tables=True)

Nach den obigen Schritten haben wir erfolgreich eine Verbindung zur Datenbank hergestellt, eine Entitätsklasse definiert und die entsprechende Tabelle in der Datenbank erstellt.

  1. Hinzufügen, löschen, ändern und prüfen

3.1 Daten einfügen

Das Einfügen von Daten ist ein häufiger Vorgang. Über Pony ORM können wir problemlos Daten einfügen.

with db_session:

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

Im obigen Code verwenden wir das Schlüsselwort with db_session, um eine Sitzung zu deklarieren, und erstellen dann zwei Kundeninstanzen c1 und c2, indem wir die Kunden-Entitätsklasse instanziieren und sie Variablen zuweisen. Als nächstes rufen wir die Methode „flush()“ auf, um die Instanzen c1 und c2 in die Datenbank einzufügen.

3.2 Daten abfragen

Das Abfragen von Daten ist eine der am häufigsten verwendeten Funktionen des ORM-Frameworks. Über Pony ORM können wir Abfrageausdrücke oder ORM-Objekte verwenden, um Daten abzufragen.

Abfrageausdruck:

select(c für c in Customer if c.age > 20)

Im obigen Code verwenden wir die Funktion select(), um die abzufragende Entitätsklasse anzugeben. Hier legen wir fest, dass die Datensätze in der Kundentabelle abgefragt werden sollen, die älter als 20 Jahre sind. Schließlich verwenden wir den Kontext „with db_session“, der die Funktion „select()“ enthält, um die Abfrageoperation auszuführen.

ORM-Objekt:

with db_session:

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

Im obigen Code verwenden wir das Schlüsselwort with db_session, um eine Sitzung zu deklarieren, und verwenden Customer.select(), um die Datensätze in der Customer-Tabelle abzufragen, die älter als 20 Jahre sind alt. Abfrageergebnisse werden als ORM-Objekte dargestellt und wir können wie Python-Objekte auf ihre Eigenschaften und Methoden zugreifen. Abschließend verwenden wir eine for-Schleife, um die Abfrageergebnisse auszugeben.

3.3 Daten aktualisieren

Der Vorgang zum Aktualisieren von Daten ist sehr einfach. Wir müssen lediglich zuerst die Datensätze abfragen, die aktualisiert werden müssen, dann die entsprechenden Attributwerte ändern und schließlich die Methode „flush()“ aufrufen, um die geänderten Daten zu speichern .

mit db_session:

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

Im obigen Code verwenden wir die Anweisung Customer.get(), um den Kundendatensatz namens Tom abzufragen und ändern dann seine Adresse in Peking. Abschließend speichern wir die aktualisierten Daten in der Datenbank, indem wir die Methode „flush()“ aufrufen.

3.4 Daten löschen

Das Löschen von Daten ist ebenfalls sehr einfach. Wir müssen nur zuerst den Datensatz abfragen, der gelöscht werden muss, und dann seine Methode delete () aufrufen.

mit db_session:

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

Im obigen Code verwenden wir die Anweisung Customer.get(), um den Kundendatensatz namens Tom abzufragen, und rufen dann seine Methode delete() auf, um den Datensatz aus der Datenbank zu löschen.

  1. Zusammenfassung

Pony ORM ist ein einfaches, benutzerfreundliches und funktionsreiches Python-ORM-Framework, das Python-Objekte zur Persistenz schnell einer relationalen Datenbank zuordnen kann. Wenn wir Pony ORM verwenden, müssen wir zuerst eine Verbindung zur Datenbank herstellen, dann Entitätsklassen definieren, Tabellen erstellen und schließlich Vorgänge wie Hinzufügen, Löschen, Ändern und Abfragen über Abfrageausdrücke oder ORM-Objekte implementieren. Für Anfänger ist Pony ORM ein sehr benutzerfreundliches ORM-Framework mit geringen Lernkosten, das einen schnellen Einstieg ermöglicht.

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung von Pony ORM, dem ORM-Framework in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn