Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung des ORM-Frameworks Peewee in Python
Detaillierte Erklärung des ORM-Frameworks Peewee in Python
ORM (Object Relational Mapping) ist eine Technologie, die Objekte relationalen Datenbanken zuordnet. In diesem Artikel wird Peewee vorgestellt, ein ORM-Framework in Python. Peewee ist ein leichtes, benutzerfreundliches und flexibles ORM-Framework, das mehrere Datenbanken wie SQLite, MySQL und PostgreSQL unterstützt. In diesem Artikel werden die Installation, die grundlegende Verwendung, die erweiterte Verwendung und der Vergleich von Peewee mit anderen ORM-Frameworks vorgestellt.
Peewee kann über pip installiert werden. Geben Sie zur Installation den folgenden Befehl im Terminal ein:
pip install peewee
(1) Datenbankverbindung
Bevor Sie Peewee verwenden, müssen Sie zunächst eine Verbindung zur Datenbank herstellen. Der folgende Code zeigt, wie man über Peewee eine Verbindung zu einer SQLite-Datenbank herstellt:
from peewee import * db = SqliteDatabase('my_database.db')
Unter anderem ist my_database.db der Name der SQLite-Datenbank. Wenn die Datenbankdatei nicht vorhanden ist, wird die Datei im aktuellen Verzeichnis erstellt.
Peewee unterstützt auch MySQL, PostgreSQL und andere Datenbanken. Sie müssen lediglich SqliteDatabase durch die entsprechende Datenbank ersetzen. Der folgende Code zeigt beispielsweise, wie man über Peewee eine Verbindung zu einer MySQL-Datenbank herstellt:
db = MySQLDatabase('my_database', user='my_user', password='my_password', host='my_host', port=3306)
(2) Definieren Sie das Modell
Peewee verwendet Modelle, um Tabellen in der Datenbank zu beschreiben. Jedes Modell repräsentiert eine Tabelle und jedes Attribut repräsentiert ein Feld in der Tabelle. Der folgende Code definiert einen Modellbenutzer, der zwei Felder enthält: ID und Name:
class User(Model): id = AutoField(primary_key=True) name = CharField() class Meta: database = db
Unter diesen repräsentiert AutoField den automatisch inkrementierenden Primärschlüssel, Primary_key=True repräsentiert das Feld als Primärschlüssel und CharField repräsentiert den String-Typ.
(3) Tabelle erstellen
Nachdem Sie das Modell definiert haben, müssen Sie die entsprechende Tabelle in der entsprechenden Datenbank erstellen. Peewee bietet die Methode „create_table“ zum Erstellen einer Tabelle. Der Code lautet wie folgt:
User.create_table()
(4) Daten einfügen
Peewee bietet die Methode „Speichern“ zum Einfügen von Daten in die Datenbank. Der folgende Code fügt ein Datenelement ein:
user = User(name='张三') user.save()
(5) Daten abfragen
Peewee bietet Get- und Select-Methoden zum Abfragen von Daten. Unter diesen wird die Get-Methode zum Abfragen eines einzelnen Datenelements und die Select-Methode zum Abfragen mehrerer Datenelemente verwendet. Der folgende Code fragt alle Benutzer namens Zhang San ab:
users = User.select().where(User.name == '张三') for user in users: print(user.id, user.name)
(1) Verwandte Abfrage
Peewee unterstützt fremdschlüsselbezogene Abfragen. Der folgende Code definiert eine Modellbestellung, die drei Felder enthält: ID, Benutzer und Produkt:
class Order(Model): id = AutoField(primary_key=True) user = ForeignKeyField(User, backref='orders') product = CharField() class Meta: database = db
Darunter stellt ForeignKeyField den Fremdschlüssel dar und backref='orders' bedeutet, dass über User auf alle Bestellungen des Benutzers zugegriffen werden kann. Bestellungen.
Sie können zugehörige Abfragen über die Join-Methode durchführen, wie unten gezeigt:
orders = Order.select().join(User).where(User.name == '张三') for order in orders: print(order.id, order.user.name, order.product)
(2) Transaktionsoperation
Peewee unterstützt Transaktionsoperationen. Mit db.atomic() können mehrere Operationen auf der Datenbank gekapselt werden. Der Code lautet wie folgt:
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()
Im Vergleich zu Djangos eigenem ORM-Framework ist Peewee leichter flexibel einsetzbar. Im Vergleich zu SQLAlchemy ist die Syntax von Peewee prägnanter und klarer und bietet außerdem viele praktische erweiterte Verwendungsmöglichkeiten.
Kurz gesagt, Peewee ist ein empfohlenes Python-ORM-Framework. Aufgrund seiner Flexibilität und Benutzerfreundlichkeit wird es auch in vielen Projekten häufig verwendet.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des ORM-Frameworks Peewee in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!