Zum Inhalt

Seiten und Nummern

Mit den folgenden Methoden können Sie die Anzahl der Zeilen in einer Abfrage paginieren und einschränken.

  • paginate(page: int) -> QuerySet

  • limit(limit_count: int) -> QuerySet

  • offset(offset: int) -> QuerySet

  • get ()-> Das Modell

  • Das erste ()-> Modell

  • Frage an den Vereinsvertreter

    • QuerysetProxy.paginate(page: int) Die Methode
    • QuerysetProxy.limit(limit_count: int) Die Methode
    • QuerysetProxy.offset(offset: int) Die Methode

Seiten Seiten

paginate(page: int, page_size: int = 20) -> QuerySet

Kombiniert Versatz-und Einschränkungsmethoden basierend auf Seitenzahl und Größe

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Klasse Track (ormar. Modell):
    Die Abbildung zeigt die Konfidenzintervalle (
        Datenbank = Datenbank. Datenbank (DATABASE_URL),
        metadata = sqlalchemy. metadata (), oder
        tabellenname ="Spur"
    )

    id: int = ormar. Integer (primary_key = true)(nicht bekannt)
    Album: Optional [Album]= ormar. ForeignKey (Album) Bearbeiten
    name: str = ormar. String (max_length = 100)[Bearbeiten | Quelltext bearbeiten]
    position: int = ormar. Integer () oder


tracks = await Track. objects. paginate (3). all ()()[Bearbeiten | Quelltext bearbeiten]
#will return 20 tracks starting at ROW41 zurück
#(mit default page size of 20)

paginate (2) ist äquivalent zu offset (20). limit (20).

Begrenzung

limit(limit_count: int, limit_raw_sql: bool = None) -> QuerySet

Sie können die Ergebnisse auf die erforderliche Anzahl von übergeordneten Modellen beschränken.

Wenn Sie die tatsächliche Anzahl von Datenbankanfragezeilen anstelle des Hauptmodells einschränken möchten, verwenden Sie das Flag limit_raw_sql, und setzen Sie es auf True.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Klasse Track (ormar. Modell):
    Die Orginal-Funktion (
        Datenbank = Datenbank. Datenbank (DATABASE_URL),
        metadata = sqlalchemy. metadata (), oder
        tabellenname ="Spur"
    )

    id: int = ormar. Integer (primary_key = true)(nicht bekannt)
    Album: Optional [Album]= ormar. ForeignKey (Album)[Bearbeiten | Quelltext bearbeiten]
    name: str = ormar. String (max_length = 100)
    position: int = ormar. Integer () oder


tracks = await Track. objects. limit (1). all ()[Bearbeiten | Quelltext bearbeiten]
* nur eine Spur zurück

!!!Beachten Sie, dass alle Methoden, die keine Zeile zurückgeben, explizit eine Instanz von QuerySet zurückgeben, sodass Sie sie miteinander verknüpfen können.

1
2
3
Operationen wie `filter()`, `select_related()`, `limit()` und `offset()` etc. Es kann chained sein.

Etwas Ähnliches `Track.object.select_related("album").filter(album__name="Malibu").offset(1).limit(1).all()`

Offset ausgleichende

offset(offset: int, limit_raw_sql: bool = None) -> QuerySet

Sie können die Ergebnisse auch durch die erforderliche Anzahl an Mastermodellen ausgleichen.

Um die tatsächliche Anzahl von Datenbankabfragezeilen gegenüber der Anzahl des Hauptmodells zu verschieben, verwenden Sie das Flag limit_raw_sql, und setzen Sie es auf True.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Klasse Track (ormar. Modell):
    Die Orginal-Funktion (
        Datenbank = Datenbank. Datenbank (DATABASE_URL),
        metadata = sqlalchemy. metadata (), oder
        tabellenname ="Spur"
    )

    id: int = ormar. Integer (primary_key = true)(nicht bekannt)
    Album: Optional [Album]= ormar. ForeignKey (Album) Bearbeiten
    name: str = ormar. String (max_length = 100)[Bearbeiten | Quelltext bearbeiten]
    position: int = ormar. Integer () oder


tracks = await Track. objects. offset (1). limit (1). all ()[Bearbeiten | Quelltext bearbeiten]
Es gibt nur einen Track zurück, aber diesmal den zweiten.

!!!Beachten Sie, dass alle Methoden, die keine Zeile zurückgeben, explizit eine Instanz von QuerySet zurückgeben, sodass Sie sie miteinander verknüpfen können.

1
2
3
So operations wie `filter()`,`select_related()`,`limit()` und `offset()` etc. kann chained werden.

Etwas Ähnliches `Track.object.select_related("album").filter(album__name="Malibu").offset(1).limit(1).all()`

erhalten.

get (**kwargs)-> Beschreibung

Ruft die erste Zeile aus der Datenbank ab, die die kwargs-Setupbedingungen erfüllt.

Wenn keine Bedingung festgelegt ist, wird die letzte Zeile in db, sortiert nach pk, zurückgegeben (auch die Bedingung kann nicht mithilfe von Filtern/Ausschlüssen festgelegt werden).

!!!tip Um mehr über get zu erfahren, besuchen Sie read/get

erster.

Das erste ()-> Modell

Rufen Sie die erste Zeile aus der Datenbank ab, die nach Primärschlüsselspalten in aufsteigender Reihenfolge sortiert ist.

!!!tip Um mehr über den ersten Besuch zu erfahren, lesen Sie/first

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.

Seiten Seiten

Genau die gleiche Auslagerungsfunktion wie oben, aber Sie können verwandte Objekte vom anderen Ende der Beziehung auslagern.

!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy

Begrenzung

Genau wie die oben genannte Funktion limit, aber Sie können verwandte Objekte von der anderen Seite der Beziehung paginieren.

!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy

Offset ausgleichende

Genau wie die oben genannte Offsetfunktion, aber Sie können verwandte Objekte von der anderen Seite der Beziehung auslagern.

!!!tip Um mehr über QuerysetProxy zu erfahren, besuchen Sie den Abschnitt querysetproxy