Flask Academy · Lektion

Uppdatera befintliga poster säkert

Ändra fält och flush:a ändringarna korrekt.

Lektion 3 av 413 steg

Uppdatera befintliga poster säkert är en gratis lektion i Flask Academy på CoddyKit. Detta är lektion 3 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.

U i CRUD

Att uppdatera innebär att ändra en befintlig rad, inte att skapa en ny. Tricket är att först ladda posten och sedan redigera den. ✏️

Hitta posten innan du ändrar den

Hämta alltid målraden utifrån dess id innan du ändrar den. get_or_404() laddar den eller avbryter med ett tydligt 404-svar.

user = User.query.get_or_404(user_id)

Redigera som ett Python-objekt

När objektet har laddats tilldelar du bara dess attribut på nytt. SQLAlchemy upptäcker ändringen och markerar objektet som ändrat åt dig.

user.name = "New Name"

Läs de nya värdena

Uppdateringar innehåller vanligtvis de nya uppgifterna i requestens body. Tolka den med get_json() innan du tillämpar något.

data = request.get_json()

Tillämpa fält försiktigt

Skriv bara över fält som klienten faktiskt skickade. Om du använder get() med ett reservvärde undviker du att oavsiktligt radera värden genom att sätta dem till None.

user.name = data.get("name", user.name)

Committa ändringen

Ingen add() behövs för en befintlig rad. En enda commit() skickar dina ändringar till databasen.

db.session.commit()

PUT ersätter, PATCH justerar

Använd PUT när klienten skickar hela objektet och PATCH när den bara skickar de fält som ska ändras.

@app.route("/users/<int:id>", methods=["PATCH"])

Validera innan du sparar

Kontrollera inkommande värden innan du committar. Avvisa felaktiga data med 400 så att du aldrig sparar en trasig post.

if not data.get("name"):
    return jsonify(error="name required"), 400

Gör rollback om något går fel

Om commit kastar ett undantag anropar du rollback() för att ta bort den delvis tillämpade ändringen och lämna raden precis som den var.

except Exception:
    db.session.rollback()

Returnera den uppdaterade raden

Ett bra svar på en uppdatering skickar tillbaka den aktuella posten med status 200, så att klienten ser det sparade resultatet.

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

Ladda, redigera, committa

Hela uppdateringsflödet består av tre steg: ladda raden, ändra dess attribut och committa sedan. Inget nytt objekt skapas.

Snabb kontroll

Du ändrade ett attribut på ett laddat objekt. Vad måste hända för att ändringen ska sparas?

Sammanfattning: Uppdatera poster

Du laddar med get_or_404, tillämpar bara skickade fält, validerar och committar sedan, med rollback vid fel. Nu har du säkra uppdateringar! 🎉

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 ”Uppdatera befintliga poster säkert” gratis?

Ja – hela texten till ”Uppdatera befintliga poster säkert” 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 ”Uppdatera befintliga poster säkert”?

Ändra fält och flush:a ändringarna korrekt. 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 3 av 4.

Hur lång tid tar lektionen ”Uppdatera befintliga poster säkert”?

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