Bootcamp i FastAPI-backendudvikling · Lektion

Serialisering med model_dump og aliases

Styr, hvordan Pydantic-modeller konverteres til og fra data, med model_dump, field aliases, beregnede felter og serialiseringsindstillinger for rene API-payloads.

Lektion 4 af 413 trin

Serialisering med model_dump og aliases er en gratis Bootcamp i FastAPI-backendudvikling-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Bootcamp i FastAPI-backendudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Bootcamp i FastAPI-backendudvikling-kurset indeholder 4 lektioner i alt.

Serialisering kontra validering

Pydantic udfører to opgaver: validering (upålidelige input bliver til en typet model) og serialisering (en model bliver til en dict eller JSON, der kan sendes ud). Denne lektion fokuserer på præcis styring af outputtet.

Grundlæggende model_dump

I Pydantic v2 omdanner model_dump() en model til en dict, mens model_dump_json() omdanner den 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())

Inkludering og udelukkelse af felter

Begræns outputtet med include eller exclude for at skjule interne eller følsomme felter fra en payload.

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

Udelad standardværdier og None

Brug exclude_none=True eller exclude_defaults=True til at oprette mere kompakte payloads, hvor tomme værdier udelades.

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

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

Feltsynonymer

Eksterne API'er bruger ofte navne som userName, mens Python foretrækker user_name. Et alias forbinder de to navne.

from pydantic import BaseModel, Field

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

Serialisering med alias

Som standard bruger model_dump Pythons feltnavne. Angiv by_alias=True for i stedet at bruge aliasnavnene i outputtet.

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

populate_by_name

Angiv model_config = ConfigDict(populate_by_name=True) for at acceptere enten feltnavnet eller aliaset ved fortolkning af input. Det giver 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 felter

Eksponér afledte værdier i outputtet med @computed_field. De vises i model_dump, men er ikke en del af inputtet.

from pydantic import computed_field

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

Brugerdefinerede feltserialisatorer

Brug @field_serializer til at styre, hvordan et bestemt felt gengives, f.eks. ved at formatere en datetime eller maskere en hemmelig værdi.

from pydantic import field_serializer

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

Alias-tilknytning i almindelig Python

by_alias-transformationen ændrer blot nøglenavne. Her ser du konceptet uden 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-integration af svar

FastAPI serialiserer returværdier gennem din response_model. Angiv response_model_by_alias og udelukkelsesflag på ruten for at forme den JSON, som dit API sender ud.

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

Hurtigt tjek

Din model har user_name: str = Field(alias='userName'). Hvad producerer model_dump(by_alias=True) som nøgle?

Opsummering

Du har fået styr på Pydantic-serialisering:

  • model_dump / model_dump_json med include, exclude og exclude_none.
  • Aliaser samt by_alias og populate_by_name.
  • Beregnede felter og brugerdefinerede feltserialisatorer.
  • Integration i FastAPI-svarmodeller.
Gratis at komme i gang

Lær Bootcamp i FastAPI-backendudvikling med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
21
Lektioner
84

Ofte stillede spørgsmål

Er lektionen “Serialisering med model_dump og aliases” gratis?

Ja — alle 3 lektioner i læringssporet Bootcamp i FastAPI-backendudvikling, inklusive “Serialisering med model_dump og aliases”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Bootcamp i FastAPI-backendudvikling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Serialisering med model_dump og aliases”?

Styr, hvordan Pydantic-modeller konverteres til og fra data, med model_dump, field aliases, beregnede felter og serialiseringsindstillinger for rene API-payloads. Du øver dig i Bootcamp i FastAPI-backendudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Bootcamp i FastAPI-backendudvikling?

Der kræves ingen tidligere erfaring. Bootcamp i FastAPI-backendudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Serialisering med model_dump og aliases”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Bootcamp i FastAPI-backendudvikling-lektion?

Ja. Alle Bootcamp i FastAPI-backendudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Pydantic-feltvalidering og validators
  2. Tilpassede datatyper og indstillinger
  3. Indlejrede modeller og rekursive strukturer
  4. Serialisering med model_dump og aliases
← Tilbage til Bootcamp i FastAPI-backendudvikling