Lewati ke isi

Paging dan hitungan baris

Metode berikut memungkinkan Anda untuk halaman dan membatasi jumlah baris dalam kueri.

  • paginate(page: int) -> QuerySet

  • limit(limit_count: int) -> QuerySet

  • offset(offset: int) -> QuerySet

  • Dapatkan () - > Model

  • Model pertama () - >

  • Agen Setelan Kueri

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

paging

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

Menggabungkan metode offset dan limit berdasarkan nomor halaman dan ukuran

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Jalur Kelas (ormar. Model):
    ormar _ config = ormar. OrmarConfig (
        Database = database. Database (DATABASE _ URL),
        Metadata = sqlalchemy. MetaData (),
        Nama tabel = "lacak"
    )

    Id: int = ormar. Integer (primary _ key = Benar)
    Album: Opsional [Album] = ormar. ForeignKey (Album)
    Nama: str = ormar. String (max _ length = 100)
    Posisi: int = ormar. Integer ()


Trek = tunggu Track.objeks.paginate (3).all ()
# akan mengembalikan 20 lagu mulai dari baris 41
# (dengan ukuran halaman default 20)

Harap dicatat bahwa paginate (2) setara dengan offset (20).limit (20).

pembatasan

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

Anda dapat membatasi hasil pada jumlah model induk yang diperlukan.

Untuk membatasi jumlah sebenarnya dari baris kueri database bukan model master, gunakan batas\ _ mentah\ _ sql bendera parameter dan atur ke Benar.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Jalur Kelas (ormar. Model):
    Ormar. OrmarConfig (
        Database = database. Database (DATABASE _ URL),
        Metadata = sqlalchemy. MetaData (),
        Nama tabel = "lacak"
    )

    Id: int = ormar. Integer (primary _ key = Benar)
    Album: Opsional [Album] = ormar. ForeignKey (Album)
    Nama: str = ormar. String (max _ length = 100)
    Posisi: int = ormar. Integer ()


Trek = menunggu Track.objeks.limit (1).all ()
# akan mengembalikan hanya satu Lagu

Perhatikan

Jadi operasi seperti filter(),select_related(),limit() dan offset() dll dapat dirantai.

Sesuatu seperti Track.object.select_related("album").filter(album__name="Malibu").offset(1).limit(1).all()

offset

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

Anda juga dapat mengimbangi hasilnya dengan jumlah model master yang dibutuhkan.

Untuk mengimbangi jumlah sebenarnya baris kueri database dari model master, gunakan bendera parameter limit\ _ raw\ _ sql dan atur ke True.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
Jalur Kelas (ormar. Model):
    Ormar. OrmarConfig (
        Database = database. Database (DATABASE _ URL),
        Metadata = sqlalchemy. MetaData (),
        Nama tabel = "lacak"
    )

    Id: int = ormar. Integer (primary _ key = Benar)
    Album: Opsional [Album] = ormar. ForeignKey (Album)
    Nama: str = ormar. String (max _ length = 100)
    Posisi: int = ormar. Integer ()


Trek = menunggu Track.objeks.offset (1).limit (1).all ()
# akan mengembalikan hanya satu Lagu, tapi kali ini yang kedua

Perhatikan

Jadi operasi seperti filter(),select_related(),limit() dan offset() dll dapat dirantai.

Sesuatu seperti Track.object.select_related("album").filter(album__name="Malibu").offset(1).limit(1).all()

mendapatkan

Dapatkan (**kwargs) - > model

Mendapatkan baris pertama dari database yang memenuhi kondisi set kwargs.

Jika tidak ada kondisi yang ditetapkan, maka akan mengembalikan baris terakhir yang diurutkan dengan pk dalam db. (Penyaringan / tidak termasuk juga tidak dapat digunakan untuk mengatur kondisi).

!!!Tip Untuk mempelajari lebih lanjut tentang get, kunjungi read / get

pertama

Model pertama () - >

Mendapat baris pertama diurutkan dalam urutan menaik dengan kolom kunci utama dari database.

!!!Untuk mempelajari lebih lanjut tentang kunjungan pertama, silakan baca / dulu

Metode QuerysetProxy

Saat mengakses bidang ManyToMany dan ReverseForeignKey yang relevan secara langsung, daftar model terkait dikembalikan.

Tetapi juga memaparkan subset dari QuerySet API, sehingga Anda dapat memfilter, membuat, memilih model terkait, dll. langsung dari model induk.

paging

Fungsi paging persis sama dengan di atas, tetapi memungkinkan Anda untuk halaman objek terkait dari ujung lain hubungan.

!!!Untuk mempelajari lebih lanjut tentang QuerysetProxy, kunjungi bagian QuerysetProxy

pembatasan

Sama seperti fungsi batas di atas, tetapi memungkinkan Anda untuk halaman objek terkait dari sisi lain hubungan.

!!!Untuk mempelajari lebih lanjut tentang QuerysetProxy, kunjungi bagian QuerysetProxy

offset

Fungsi offset identik dengan yang di atas, tetapi memungkinkan Anda untuk halaman objek terkait dari sisi lain hubungan.

!!!Untuk mempelajari lebih lanjut tentang QuerysetProxy, kunjungi bagian QuerysetProxy