Auslesen von Daten aus der Datenbank
Die folgenden Methoden ermöglichen es Ihnen, Daten aus der Datenbank zu laden.
-
get (*args,** kwargs)-> Beschreibung
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool] -
first(*args, **kwargs) -> Model -
all(*args, **kwargs) -> List[Optional[Model]] -
iterate(*args, **kwargs) -> AsyncGenerator[Model] -
Das Modell
- Die Load ()-Methode
-
Frage an den Gruppenleiter
-
QuerysetProxy.get(*args, **kwargs)Die Methode QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)Die MethodeQuerysetProxy.first(*args, **kwargs)Die MethodeQuerysetProxy.all(*args, **kwargs)Die Methode
erhalten.
get (*args,** kwargs)-> Das Modell
Ruft die erste Zeile aus der Datenbank ab, die die kwargs-Setupbedingungen erfüllt.
Wenn keine Bedingung festgelegt ist, wird die letzte Zeile in der Datenbank zurückgegeben, sortiert nach pk-Spalte.
Das Übergeben einer Bedingung ruft tatsächlich die unten beschriebene Methode filter (*args,** kwargs) auf.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!Warnung Wenn die Bedingung nicht in der Zeile erfüllt wird , wird eine NoMatch-Ausnahme ausgelöst .
1 | |
erhalten oder keine
get_or_none(*args, **kwargs) -> Model
Es ist genau das gleiche wie das oben beschriebene get , aber wenn kein Datenbankdatensatz gefunden wird , der mit den Kriterien übereinstimmt , wird None zurückgegeben , anstatt eine Ausnahme auszulösen .
Erwerben oder schaffen
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
Eine Kombination von Methoden erstellen und erhalten .
Versuchen Sie , eine Zeile zu erhalten , die die Bedingung erfüllt , und wenn eine NoMatch-Ausnahme ausgelöst wird , wird eine neue Zeile mit den angegebenen kwargs und \ _ defaults erstellt .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
!!!Warnung Obwohl es sich um eine äquivalente Zeile in der Datenbank handelt, sind album und album2 im obigen Beispiel 2 verschiedene Python-Objekte!
Beachten Sie , dass Sie , wenn Sie ein neues Objekt erstellen möchten , entweder den pk-Spaltenwert übergeben oder die pk-Spalte auf eine automatische Inkrementierung setzen müssen .
ersten .
first(*args, **kwargs) -> Model
Rufen Sie die erste Zeile aus der Datenbank ab , die nach Primärschlüsselspalten in aufsteigender Reihenfolge sortiert ist .
1 2 3 4 5 6 7 8 9 10 11 12 | |
Alles .
all(*args, **kwargs) -> List[Optional["Model"]]
Gibt für die von Ihnen festgelegten Filteroptionen alle Zeilen in der Datenbank eines bestimmten Modells zurück .
Das Übergeben von kwargs ist eine Abkürzung , die dem Aufruf von filter (*args , *\ * kwargs) . all () entspricht .
Wenn keine Zeile die Bedingung erfüllt , wird eine leere Liste zurückgegeben .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Umbenennung
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
Gibt einen asynchronen iterierbaren Generator für alle Zeilen in der Datenbank eines bestimmten Modells zurück .
Das Übergeben von args und/oder kwargs ist eine Abkürzung , die gleich filter(*args, **kwargs).iterate() aufgerufen wird .
Wenn keine Zeile die Bedingungen erfüllt , wird ein leerer Asynchron-Generator zurückgegeben .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!Warnung Die Verwendung von iterate () würde dazu führen, dass frühere Aufrufe von prefetch_lated () ignoriert wurden, da es keinen Sinn macht, die beiden Optimierungen zusammen zu setzen.
1 | |
Die Modell-Methode
Jede Modellinstanz verfügt über eine Reihe von Methoden zum Speichern, Aktualisieren oder Laden von sich selbst.
Aufladen
Sie können ForeignKey-bezogene Modelle laden, indem Sie die Methode load () aufrufen.
load () kann verwendet werden, um ein Modell aus der Datenbank zu aktualisieren, wenn es von einem anderen Prozess geändert wird.
!!!tip Lesen Sie mehr über die load ()-Methode in einem Modellansatz
Die QuerysetProxy Methode
Wenn Sie direkt auf das zugehörige Feld ManyToMany und ReverseForeignKey zugreifen, wird eine Liste der zugehörigen Modelle zurückgegeben.
Gleichzeitig wird jedoch eine Teilmenge der QuerySet-API verfügbar gemacht, sodass Sie relevante Modelle direkt aus dem übergeordneten Modell filtern, erstellen, auswählen usw. können.
bekommen.
Das funktioniert genau so wie die gete-Funktion oben, ermöglicht es Ihnen jedoch, verwandte Objekte vom anderen Ende der Beziehung zu erhalten.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy
erhalten oder keine
Es ist genau das gleiche wie das oben beschriebene get, aber wenn kein Datenbankdatensatz gefunden wird, der den Kriterien entspricht, wird None zurückgegeben, anstatt eine Ausnahme auszulösen.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy
Erwerben oder schaffen
Genau wie die oben genannte Funktion get_or_create, aber mit der Sie vom anderen Ende der Beziehung aus ein zugehöriges Objekt abfragen oder erstellen können.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy
erster.
Genau wie die erste Funktion oben, aber Sie können das verwandte Objekt vom anderen Ende der Beziehung abfragen.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy
Alles.
Genau die gleichen Funktionen wie oben, aber Sie können verwandte Objekte vom anderen Ende der Beziehung abfragen.
!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy