Filtrér, sortér og begræns resultater
Brug filter_by, order_by og pagination.
Filtrér, sortér og begræns resultater er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.
Begræns resultater med filter_by
Brug filter_by() med nøgleordsargumenter for kun at beholde rækker, der matcher en kolonne nøjagtigt. Det ligner næsten almindeligt sprog. 🎯
admins = User.query.filter_by(role="admin").all()Mere kraft med filter
Når du har brug for sammenligninger, skal du bruge filter() og komplette kolonneudtryk i stedet for simpel lighed.
adults = User.query.filter(User.age >= 18).all()Kombinér betingelser
Send flere udtryk til filter(), så forbindes de med AND. Alle betingelser skal derfor være opfyldt, for at en række matcher.
q = User.query.filter(User.age >= 18, User.active == True)OR-betingelser
Hvis enten-eller skal matche, skal du omslutte betingelserne med or_(), så en række godkendes, når blot én af dem er sand.
from sqlalchemy import or_
q = User.query.filter(or_(User.age < 18, User.vip))Sortér med order_by
Brug order_by() til at sortere resultater efter en kolonne. Som standard returneres rækkerne i stigende orden.
users = User.query.order_by(User.name).all()Nyeste først med desc
Pak en kolonne ind i desc() for at vende sorteringen og placere de største eller nyeste værdier øverst.
posts = Post.query.order_by(Post.created.desc()).all()Begræns antallet med limit
Tilføj limit() for kun at hente de første N rækker. Det holder svarene små og forespørgslerne hurtige.
top = Post.query.order_by(Post.score.desc()).limit(5).all()Spring rækker over med offset
Brug offset() til at springe et antal rækker over, før der returneres resultater. Sammen med limit giver det enkel sideopdeling.
page2 = Post.query.limit(10).offset(10).all()Rigtig sideopdeling med paginate
Flask-SQLAlchemy samler sideopdeling i paginate(), som returnerer elementer samt nyttige metadata om siden i ét kald.
p = Post.query.paginate(page=2, per_page=10)Sæt det hele sammen
Filtrering, sortering og begrænsning kan kædes flydende sammen, og intet kører, før du afslutter med all eller first.
q = Post.query.filter_by(public=True).order_by(Post.id.desc()).limit(3)Rækkefølgen er vigtig ved begrænsninger
Sæt altid limit() sammen med order_by. Uden en sortering er det uforudsigeligt, hvilke rækker du får tilbage.
Hurtigt tjek
Du vil have de tre indlæg med de højeste pointtal. Hvilken klausul gør pointtallet til det øverste resultat?
Opsamling: Tilpasning af resultater
Du kan nu filter, sortere med order_by og desc samt begrænse output med limit, offset og paginate. Nu har du adgang til effektive læsninger! 🚀
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Filtrér, sortér og begræns resultater” gratis?
Ja — hele teksten til “Filtrér, sortér og begræns resultater” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Filtrér, sortér og begræns resultater”?
Brug filter_by, order_by og pagination. Du øver dig i Flask Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Flask Academy?
Der kræves ingen tidligere erfaring. Flask Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Filtrér, sortér og begræns resultater”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Flask Academy-lektion?
Ja. Alle Flask Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Hent rækker med query og get
- Filtrér, sortér og begræns resultater
- Definér relationer og foreign keys
- Joins og lazy kontra eager loading