Bootcamp i backendutvikling med FastAPI · leksjon

Serialisering med model_dump og aliaser

Styr hvordan Pydantic-modeller konverteres til og fra data ved hjelp av model_dump, feltaliaser, beregnede felt og serialiseringsalternativer for ryddige API-payloads.

Leksjon 4 av 413 trinn

Serialisering med model_dump og aliaser er en gratis leksjon i Bootcamp i backendutvikling med FastAPI på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med FastAPI, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med FastAPI inneholder totalt 4 leksjoner.

Serialisering kontra validering

Pydantic har to oppgaver: validering (uklarerte inndata blir til en typet modell) og serialisering (en modell blir til en dict eller JSON som kan sendes ut). Denne leksjonen fokuserer på presis kontroll av utdataene.

Grunnleggende om model_dump

I Pydantic v2 gjør model_dump() en modell om til en dict, mens model_dump_json() gjør den om til en JSON-streng.

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())

Inkludere og utelate felt

Begrens utdataene med include eller exclude for å skjule interne eller sensitive felt fra en nyttelast.

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

Utelate standardverdier og None

Bruk exclude_none=True eller exclude_defaults=True for å lage mindre nyttelaster som utelater tomme verdier.

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

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

Feltsaliaser

Eksterne API-er bruker ofte navn som userName, mens Python foretrekker user_name. Et alias oppretter en kobling mellom dem.

from pydantic import BaseModel, Field

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

Serialisere med alias

Som standard bruker model_dump navnene på Python-feltene. Send inn by_alias=True for å bruke aliasnavnene i utdataene i stedet.

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

populate_by_name

Sett model_config = ConfigDict(populate_by_name=True) for å godta enten feltnavnet eller aliaset når inndata analyseres. Da får du fleksibilitet i begge ender.

from pydantic import ConfigDict

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

Beregnede felt

Eksponer avledede verdier i utdataene med @computed_field. De vises i model_dump, men er ikke en del av inndataene.

from pydantic import computed_field

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

Egendefinerte feltserialisatorer

Bruk @field_serializer til å styre hvordan et bestemt felt gjengis, for eksempel ved å formatere en datetime eller maskere en hemmelighet.

from pydantic import field_serializer

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

Alias-tilordning i vanlig Python

Transformasjonen med by_alias er bare en omdøping av nøkler. Her ser du konseptet uten 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-integrasjon for svar

FastAPI serialiserer returverdier gjennom response_model. Sett response_model_by_alias og flagg for utelating på ruten for å forme JSON-en API-et sender ut.

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

Rask sjekk

Modellen din har user_name: str = Field(alias='userName'). Hva blir nøkkelen fra model_dump(by_alias=True)?

Oppsummering

Du har fått kontroll på Pydantic-serialisering:

  • model_dump / model_dump_json med include, exclude og exclude_none.
  • Aliaser samt by_alias og populate_by_name.
  • Beregnede felt og egendefinerte feltserialisatorer.
  • Kobling til FastAPI-svarmodeller.
Gratis å komme i gang

Lær deg Bootcamp i backendutvikling med FastAPI 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
21
Leksjoner
84

Ofte stilte spørsmål

Er leksjonen «Serialisering med model_dump og aliaser» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Bootcamp i backendutvikling med FastAPI, inkludert «Serialisering med model_dump og aliaser», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Bootcamp i backendutvikling med FastAPI inneholder totalt 4 leksjoner.

Hva lærer jeg i «Serialisering med model_dump og aliaser»?

Styr hvordan Pydantic-modeller konverteres til og fra data ved hjelp av model_dump, feltaliaser, beregnede felt og serialiseringsalternativer for ryddige API-payloads. Du øver på Bootcamp i backendutvikling med FastAPI 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 Bootcamp i backendutvikling med FastAPI?

Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med FastAPI 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 «Serialisering med model_dump og aliaser»?

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 Bootcamp i backendutvikling med FastAPI-leksjonen?

Ja. Alle Bootcamp i backendutvikling med FastAPI-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

  1. Pydantic-feltvalidering og validatorer
  2. Egendefinerte datatyper og innstillinger
  3. Nestede modeller og rekursive strukturer
  4. Serialisering med model_dump og aliaser
← Tilbake til Bootcamp i backendutvikling med FastAPI