Flask Academy · Lektion

Read-one- og read-many-endpoints

Returnér ét element eller en samling.

Lektion 2 af 413 trin

Read-one- og read-many-endpoints 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.

To former for læsning

En REST-ressource har brug for to læseendepunkter: ét, der returnerer et enkelt element efter id, og ét, der returnerer hele samlingen. 📚

Listerute til mange

Samlingen findes på en almindelig sti som /users. Et GET-kald dertil bør svare med alle matchende poster.

@app.route("/users")
def list_users():
    ...

Indlæs dem alle

Hent hele mængden med query.all(), som giver dig en Python-liste med modelinstanser, der kan serialiseres.

users = User.query.all()

Serialisér samlingen

jsonify kan ikke serialisere modelobjekter direkte, så omdan først hver række til en dict, og returnér derefter listen.

return jsonify([{"id": u.id, "name": u.name} for u in users])

Detaljerute til én

Et enkelt element findes på /users/<id>. id'et i stien fortæller dig præcis, hvilken række der skal indlæses.

@app.route("/users/<int:user_id>")
def get_user(user_id):
    ...

Hent den ene række

Brug get() sammen med id'et fra stien for at hente den matchende post direkte fra databasen.

user = User.query.get(user_id)

Returnér det enkelte element

Pak den fundne række ind i en dict, og brug jsonify på den. Din klient får ét enkelt JSON-objekt tilbage.

return jsonify({"id": user.id, "name": user.name})

Håndtér det manglende tilfælde

Hvis get returnerer None, var id'et forkert. Svar derfor med 404 i stedet for at udløse en fejl på en None-værdi.

if user is None:
    return jsonify(error="not found"), 404

Spring kontrollen over med get_or_404

Flask-SQLAlchemys get_or_404() henter efter id eller afbryder automatisk med 404, så du slipper for gentagen standardkode i detaljevisninger.

user = User.query.get_or_404(user_id)

Sideopdel lange lister

Det er langsomt at returnere tusindvis af rækker. Brug paginate() til at opdele samlingen i sider, som klienten kan hente én ad gangen.

page = User.query.paginate(page=1, per_page=20)

Listen returnerer et array

Hold strukturerne forudsigelige: samling-ruten returnerer et JSON-array, mens detaljeruten returnerer ét enkelt objekt.

Hurtigt tjek

En forespørgsel rammer /users/42, men der findes ingen sådan række. Hvad bør endepunktet gøre?

Opsamling: Læsning af poster

Du har opbygget en listerute, der returnerer et array, og en detaljerute, der returnerer ét element, med 404 for manglende rækker. Korrekte læsninger er på plads! 🎉

Gratis at komme i gang

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 “Read-one- og read-many-endpoints” gratis?

Ja — hele teksten til “Read-one- og read-many-endpoints” 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 “Read-one- og read-many-endpoints”?

Returnér ét element eller en samling. 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 “Read-one- og read-many-endpoints”?

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

  1. Opret records, og commit sessions
  2. Read-one- og read-many-endpoints
  3. Opdatér eksisterende records sikkert
  4. Slet, og håndtér manglende rækker
← Tilbage til Flask Academy