Slett og håndter manglende rader
Fjern poster og returner 404 når de mangler.
Slett og håndter manglende rader er en gratis leksjon i Flask Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Flask Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Flask Academy inneholder totalt 4 leksjoner.
D-en i CRUD
Sletting fjerner en rad for godt. Som ved oppdatering må De først laste inn posten og deretter be session om å fjerne den. 🗑️
Last inn målraden
Hent posten etter id før De sletter den. Med get_or_404() avsluttes forespørselen ryddig med 404 hvis id-en mangler.
user = User.query.get_or_404(user_id)Merk den for sletting
Klargjør fjerningen med db.session.delete(). Raden er ikke borte ennå, men ligger i kø i den gjeldende transaksjonen.
db.session.delete(user)Commit for å fjerne
Som ved alle skriveoperasjoner skjer ingenting før De kaller commit(). Da utføres DELETE, og raden er virkelig borte.
db.session.delete(user)
db.session.commit()Håndter manglende rader først
Å slette en id som ikke finnes, er en klientfeil. Svar med 404 i stedet for å late som om det fungerte.
user = User.query.get(user_id)
if user is None:
return jsonify(error="not found"), 404204 No Content
En ryddig sletting returnerer ofte 204, statusen som betyr at operasjonen lyktes uten at det er noe nyttig å sende tilbake.
return "", 204Rull tilbake ved feil
Hvis commit mislykkes, for eksempel fordi en fremmednøkkel blokkerer slettingen, kan De kalle rollback() for å angre den klargjorte slettingen og holde dataene konsistente.
except Exception:
db.session.rollback()Sletting er idempotent
Hvis du kaller delete to ganger med samme id, skal resultatet være det samme: raden er ganske enkelt fraværende, så en ny 404 er helt greit.
Følg med på relasjonene
Når en forelder slettes, kan underordnede poster bli foreldreløse. Konfigurer cascade på relasjonen, slik at relaterte rader også ryddes opp.
posts = relationship("Post", cascade="all, delete")Vurder soft deletes
Noen ganger bør data ikke slettes permanent. En soft delete setter i stedet et is_deleted-flagg, slik at raden beholdes for revisjon.
user.is_deleted = True
db.session.commit()Last inn, slett, bekreft
Sletteflyten ligner på oppdatering: last inn raden, marker den for sletting, og bekreft deretter. Manglende id-er gir en ryddig 404.
Kort sjekk
En DELETE-forespørsel lykkes, og det finnes ingen body å returnere. Hvilken status passer best?
Oppsummering: Slette poster
Du laster inn med get_or_404, kaller delete, bekrefter og svarer med 204, mens cascade og soft deletes er smarte alternativer. CRUD er fullført! 🎉
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Slett og håndter manglende rader» gratis?
Ja – hele teksten i «Slett og håndter manglende rader» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Flask Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Flask Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Slett og håndter manglende rader»?
Fjern poster og returner 404 når de mangler. Du øver på Flask Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Flask Academy?
Ingen tidligere erfaring er nødvendig. Flask Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Slett og håndter manglende rader»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Flask Academy-leksjonen?
Ja. Alle Flask Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Opprett poster og bekreft sesjoner
- Endepunkter for å lese én og mange
- Oppdater eksisterende poster trygt
- Slett og håndter manglende rader