Bootcamp i backendutveckling med FastAPI · Lektion

Serialisering med model_dump och alias

Styr hur Pydantic-modeller omvandlas till och från data med model_dump, fältalias, beräknade fält och serialiseringsalternativ för rena API-payloads.

Lektion 4 av 413 steg

Serialisering med model_dump och alias är en gratis lektion i Bootcamp i backendutveckling med FastAPI på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Bootcamp i backendutveckling med FastAPI, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Bootcamp i backendutveckling med FastAPI innehåller totalt 4 lektioner.

Serialisering kontra validering

Pydantic gör två saker: validering (opålitliga indata blir en typad modell) och serialisering (en modell blir en dict eller JSON som kan skickas ut). Den här lektionen fokuserar på att styra utdata exakt.

Grunderna i model_dump

I Pydantic v2 omvandlar model_dump() en modell till en dict och model_dump_json() till en JSON-sträng.

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

u = User(name='Ada', age=36)
print(u.model_dump())
print(u.model_dump_json())

Inkludera och exkludera fält

Begränsa utdata med include eller exclude för att dölja interna eller känsliga fält från en payload.

u.model_dump(exclude={'age'})
u.model_dump(include={'name'})

Ta bort standardvärden och None

Använd exclude_none=True eller exclude_defaults=True för att skapa mindre payloader där tomma värden utelämnas.

class Profile(BaseModel):
    name: str
    bio: str | None = None

Profile(name='Ada').model_dump(exclude_none=True)

Fältalias

Externa API:er använder ofta namn som userName, medan Python föredrar user_name. Ett alias mappar mellan dem.

from pydantic import BaseModel, Field

class User(BaseModel):
    user_name: str = Field(alias='userName')

Serialisera med alias

Som standard använder model_dump Pythons fältnamn. Skicka med by_alias=True för att använda aliasnamnen i stället.

u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))

populate_by_name

Ange model_config = ConfigDict(populate_by_name=True) för att acceptera antingen fältnamnet eller aliaset vid tolkning av indata. Då blir ni flexibla i båda riktningarna.

from pydantic import ConfigDict

class User(BaseModel):
    model_config = ConfigDict(populate_by_name=True)
    user_name: str = Field(alias='userName')

Beräknade fält

Exponera härledda värden i utdata med @computed_field. De visas i model_dump men ingår inte i indata.

from pydantic import computed_field

class Person(BaseModel):
    first: str
    last: str
    @computed_field
    @property
    def full(self) -> str:
        return self.first + ' ' + self.last

Egna fältserialiserare

Använd @field_serializer för att styra hur ett specifikt fält återges, till exempel för att formatera en datetime eller maskera en hemlighet.

from pydantic import field_serializer

class Account(BaseModel):
    card: str
    @field_serializer('card')
    def mask(self, v: str) -> str:
        return '****' + v[-4:]

Aliasmappning i vanlig Python

Transformeringen med by_alias innebär bara att nycklar byter namn. Här visas konceptet utan Pydantic.

data = {'user_name': 'ada', 'user_age': 36}
alias = {'user_name': 'userName', 'user_age': 'userAge'}
out = {alias[k]: v for k, v in data.items()}
print(out)

FastAPI-integrering av svar

FastAPI serialiserar returvärden via er response_model. Ange response_model_by_alias och exkluderingsflaggor på routen för att forma den JSON som API:et skickar ut.

@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
    return User(user_name='ada')

Snabb kontroll

Er modell har user_name: str = Field(alias='userName'). Vilket nyckelnamn producerar model_dump(by_alias=True)?

Sammanfattning

Ni behärskar Pydantic-serialisering:

  • model_dump / model_dump_json med include, exclude och exclude_none.
  • Alias samt by_alias och populate_by_name.
  • Beräknade fält och egna fältserialiserare.
  • Integrering med FastAPI:s svarsmodeller.
Gratis att börja

Lär dig Bootcamp i backendutveckling med FastAPI 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
21
Lektioner
84

Vanliga frågor

Är lektionen ”Serialisering med model_dump och alias” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Bootcamp i backendutveckling med FastAPI, inklusive ”Serialisering med model_dump och alias”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Bootcamp i backendutveckling med FastAPI innehåller totalt 4 lektioner.

Vad lär jag mig i ”Serialisering med model_dump och alias”?

Styr hur Pydantic-modeller omvandlas till och från data med model_dump, fältalias, beräknade fält och serialiseringsalternativ för rena API-payloads. Ni övar på Bootcamp i backendutveckling med FastAPI 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 Bootcamp i backendutveckling med FastAPI?

Du behöver inga förkunskaper. Utbildningen i Bootcamp i backendutveckling med FastAPI 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 ”Serialisering med model_dump och alias”?

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 Bootcamp i backendutveckling med FastAPI-lektionen?

Ja. Varje Bootcamp i backendutveckling med FastAPI-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. Pydantic-fältvalidering och validatorer
  2. Anpassade datatyper och inställningar
  3. Nästadade modeller och rekursiva strukturer
  4. Serialisering med model_dump och alias
← Tillbaka till Bootcamp i backendutveckling med FastAPI