Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des ORM-Frameworks Peewee in Python

Detaillierte Erläuterung des ORM-Frameworks Peewee in Python

王林
王林Original
2023-06-10 10:57:142624Durchsuche

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.

  1. Peewee installieren

Peewee kann über pip installiert werden. Geben Sie zur Installation den folgenden Befehl im Terminal ein:

pip install peewee
  1. Grundlegende Verwendung

(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. Erweiterte Verwendung

(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()
  1. Vergleich mit anderen ORM-Frameworks

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!

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