Flask Academy · Lektion

Radera och hantera saknade rader

Ta bort poster och returnera 404 när de saknas.

Lektion 4 av 413 steg

Radera och hantera saknade rader är en gratis lektion i Flask Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Flask Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Flask Academy innehåller totalt 4 lektioner.

D i CRUD

Att ta bort rader innebär att de försvinner permanent. Precis som vid uppdatering börjar du med att ladda posten och ber sedan sessionen ta bort den. 🗑️

Ladda målraden

Hämta posten utifrån id innan du tar bort den. Med get_or_404() avbryter ett saknat id begäran på ett tydligt sätt med 404.

user = User.query.get_or_404(user_id)

Markera den för borttagning

Förbered borttagningen med db.session.delete(). Raden är inte borta än, utan ligger bara i kö i den aktuella transaktionen.

db.session.delete(user)

Committa för att ta bort

Precis som vid alla skrivoperationer händer inget förrän du anropar commit(). Då körs DELETE och raden försvinner på riktigt.

db.session.delete(user)
db.session.commit()

Hantera saknade rader först

Att ta bort ett id som inte finns är ett klientfel. Svara med 404 i stället för att låtsas att det fungerade.

user = User.query.get(user_id)
if user is None:
    return jsonify(error="not found"), 404

204 No Content

En ren borttagning returnerar ofta 204, statuskoden som betyder att åtgärden lyckades men att inget användbart återstår att skicka tillbaka.

return "", 204

Gör rollback vid fel

Om commit misslyckas, kanske för att en främmande nyckel hindrar borttagningen, anropar du rollback() för att ångra den förberedda borttagningen och hålla data konsekventa.

except Exception:
    db.session.rollback()

Borttagning är idempotent

Att anropa delete två gånger för samma id ska fungera likadant: raden är helt enkelt frånvarande, så ett upprepat 404-svar är helt i sin ordning.

Se upp med relationerna

När en parent tas bort kan dess children bli föräldralösa. Konfigurera cascade på relationen så att relaterade rader också städas bort.

posts = relationship("Post", cascade="all, delete")

Överväg soft deletes

Ibland bör data inte raderas permanent. En soft delete ändrar i stället flaggan is_deleted och behåller raden för granskning.

user.is_deleted = True
db.session.commit()

Läs in, radera, committa

Raderingsflödet fungerar på samma sätt som uppdatering: läs in raden, markera den för radering och committa sedan. Saknade id:n får ett tydligt 404-svar.

Snabbkontroll

En DELETE-begäran lyckas och det finns ingen body att returnera. Vilken status passar bäst?

Repetition: Radera poster

Du läser in med get_or_404, anropar delete, committar och svarar med 204, medan cascade och soft deletes är smarta alternativ. CRUD är klart! 🎉

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Radera och hantera saknade rader” gratis?

Ja – hela texten till ”Radera och hantera saknade rader” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Flask Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Flask Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Radera och hantera saknade rader”?

Ta bort poster och returnera 404 när de saknas. Ni övar på Flask Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Flask Academy?

Du behöver inga förkunskaper. Utbildningen i Flask Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Radera och hantera saknade rader”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Flask Academy-lektionen?

Ja. Varje Flask Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Skapa poster och committa sessioner
  2. Endpoints för att läsa en och flera
  3. Uppdatera befintliga poster säkert
  4. Radera och hantera saknade rader
← Tillbaka till Flask Academy